@DirtiesConext无效

时间:2016-12-18 00:22:50

标签: java spring junit

我有一套集成测试,全部配置为:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = MyLoader.class, classes = {MyConfig.class})
@DirtiesContext

我的一个测试不断失败,抱怨applicationContext状态,抛出消息“确保上下文没有以编程方式关闭”

由于我有蛮力的方法为每次测试分配DirtiesContext,所以真的难以理解正在发生的事情。

1 个答案:

答案 0 :(得分:0)

您应该尝试在班级实施classModeDirtiesContext -

@DirtiesContext(classMode=ClassMode.AFTER_CLASS)
public class TestClass { .. 

@Test
public void test1(){ .. }
..

}

Dirties Context JavaDoc中所述,以便在执行所有测试后上下文将被关闭。

  

@DirtiesContext可以用作类级别和方法级别   同一类或类层次结构中的注释。在这样的   在场景中,ApplicationContext将被标记为脏或之前   在任何这样的注释方法之后以及当前之前或之后   测试类,具体取决于配置的methodMode()和classMode()。