SpringJUnit4ClassRunner在JUnit测试用例结束时不会关闭应用程序上下文。
SpringJUnit4ClassRunner在JUnit测试用例结束时不会关闭应用程序上下文。
在我的JUnit 4测试中,我使用SpringJUnit4ClassRunner,代码如下:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/test-context.xml"}) public class MyTest { @Autowired private ConfigurableApplicationContext context; @Test public void test1() { . . . } @Test public void test2() { . . . } . . . }
然而,在测试用例结束时,应用程序上下文并未关闭。我希望在测试用例结束时关闭应用程序上下文(而不是在每个单独的单元测试结束时)。
到目前为止,我想到了以下解决方法:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/test-context.xml"}) public class MyTest { @Autowired private ConfigurableApplicationContext context; private static ConfigurableApplicationContext lastContext; @After public void onTearDown() { lastContext = context; } @AfterClass public static void onClassTearDown() { lastContext.close(); } @Test public void test1() { . . . } @Test public void test2() { . . . } . . . }
是否有更好的解决方案?