我有一套集成测试,全部配置为:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = MyLoader.class, classes = {MyConfig.class})
@DirtiesContext
我的一个测试不断失败,抱怨applicationContext状态,抛出消息“确保上下文没有以编程方式关闭”
由于我有蛮力的方法为每次测试分配DirtiesContext,所以真的难以理解正在发生的事情。
答案 0 :(得分:0)
您应该尝试在班级实施classMode
和DirtiesContext
-
@DirtiesContext(classMode=ClassMode.AFTER_CLASS)
public class TestClass { ..
@Test
public void test1(){ .. }
..
}
如Dirties Context JavaDoc中所述,以便在执行所有测试后上下文将被关闭。
@DirtiesContext可以用作类级别和方法级别 同一类或类层次结构中的注释。在这样的 在场景中,ApplicationContext将被标记为脏或之前 在任何这样的注释方法之后以及当前之前或之后 测试类,具体取决于配置的methodMode()和classMode()。