【发布时间】:2018-01-08 16:43:43
【问题描述】:
Spring 或 JUnit 运行器是否有一些东西可以在运行任何测试之前用来运行代码?
我找到的最接近的是@Rule 和@ClassRule,它们在类级别上工作。
我有一个 Docker @ClassRule,它托管一个空数据库,用于空集成测试。使用@ClassRule,每次都会重启容器。
我宁愿在启动测试时只启动一次(无论是所有测试还是一个测试),运行测试,然后终止容器。
我四处寻找,但除了班级规则外,我没有找到任何其他东西。如果我遗漏了一些明显的东西,请道歉。
【问题讨论】:
-
@Before 或@BeforeClass 不满足您的要求?
-
@Barath 我正在寻找每组测试运行一次的东西。所以,如果我运行所有测试,我想要的东西只会触发一次,而不是每个班级一次 (
@BeforeClass) 或每个测试一次 (@Before) -
就我而言,我正在寻找一种方法来启动 dockerized 数据库,以便我可以再次运行测试。我不想在每个测试或课程中启动一个新的,因为它太慢了。自从我发布它以来,我们已经在下面的答案中使用了代码,它仍然很好用。