当前位置: 首页 > 知识库问答 >
问题:

朱尼特5。如何在没有扩展的情况下在所有测试之前/之后运行代码

东方建修
2023-03-14

在所有测试之前,需要将数据插入数据库
完成所有测试后,需要从数据库中删除所有数据

在TestNG中,可以使用@BeforeSuite和@AfterSuite来完成这些工作
在JUnit5中如何做这些事情?

在JUnit5中,@BeforeAll注释标记了一个方法,该方法在类中的所有测试之前运行
@AfterAll注释标记要在类中的所有测试之后运行的方法。

我在stackoverflow上找到了以下解决方案:
https://stackoverflow.com/a/51556718/6643395

但是:

  • 它仅适用于所有测试之前,而不适用于所有测试之后

共有1个答案

朱通
2023-03-14

可能是后来添加的,但您引用的答案实际上包括一个钩子,用于在所有类的所有测试完成后,通过使用CloseableResource运行代码。这正是你要找的。

您还可以使用扩展来注释您的超类,因为继承了@ExtendWith。如果使用自定义元注释,也必须将其注释为继承的。这样,你就可以在一个地方做这些事情。

顺便说一句:不从普通的超类继承,而是在任何地方使用扩展通常更容易。

 类似资料: