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

1 java eclipse junit spring unit-testing

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

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

Jea*_*art 6

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

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

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