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

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

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

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

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

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