在Eclipse中独立运行所有JUnit测试,每次都重新加载Spring上下文

时间:2014-07-20 20:17:22

标签: java eclipse spring unit-testing junit

目标:在Eclipse中找到一种方法来执行JUnit类中的所有测试,该类在每次测试之前重新加载Spring上下文,而不仅仅是一次。

场景:我继承了DAO测试套件,该套件使用HSQL内存数据库,该数据库在上下文加载时使用一些示例数据进行初始化。在运行测试时,我注意到如果整个类都被执行,所有测试都会通过。但单独执行时,特定测试方法会失败。显然,测试不是独立的,早期测试正在改变数据库状态而不是自己清理,后来的测试依赖于传递。我想确定哪些测试是依赖的,并且在自己运行时会失败,而不必手动执行每个测试或修改代码。

1 个答案:

答案 0 :(得分:6)

您可以在测试类中使用@DirtiesContext

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { MyConf.class })
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
public void MyTestClass {

这将在每个测试方法之后重新加载上下文。