JUnit 5. 如何在没有扩展的情况下在所有测试之前/之后编写 运行 代码

JUnit 5. How to run code before / after all tests without extension

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

在 TestNG 中,可以使用 @BeforeSuite 和 @AfterSuite 来做这些事情。
如何在 JUnit 5 中做这些事情?

在 Junit 5 中,@BeforeAll 注释在 class.
中的所有测试之前将方法标记为 运行 @AfterAll 注释在 class.

中的所有测试之后将方法标记为 运行

我在 Whosebug 上找到了以下解决方案:

但是:

也许是后来添加的,但您引用的答案实际上包括在所有 class 的所有测试都已完成后通过使用 CloseableResource 指向 运行 代码的挂钩。这正是您要找的。

并且您还可以使用扩展名注释您的超级 class,因为 @ExtendWith 是继承的。如果您使用自定义元注释,您也必须将其注释为 @Inherited。这样,您就可以一个地方搞定

顺便说一句:不是继承普通超级 classes 而是到处使用扩展通常更容易。