刷新Spring应用程序上下文每次测试后(Reload Spring application con

2019-08-02 11:12发布

我有一个测试类,其中包含2个测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContextTest.xml" })
@Transactional
@TransactionConfiguration(defaultRollback = true)

public class MyITest extends implements BeanFactoryAware {

    private BeanFactory beanFactory;

    @Test
    public void test1() throws Exception {}

    @Test
    public void test2() throws Exception {}        
}

当我运行测试,单独我没有错误,但是当我运行所有测试一起出现故障。 该故障是由于一些测试修改应用程序上下文:

  b = beanFactory.getBean("logDataSource", BasicDataSource.class);
  b.set ...

是否有单独运行这个测试的选项? 我只想当test1的启动读取所有必要的东西,然后运行测试,然后关闭所有必要的东西。 然后开始测试2。

Answer 1:

您可以使用@DirtiesContext标注的测试类修改应用程序上下文。

Java文档

Spring文档

默认情况下,在运行整个测试类后,这将标志着应用程序上下文为脏。 如果你想一个测试方法后,标记上下文肮脏的,那么你就可以注释测试方法,而不是或设置classMode酒店在你的职业等级注释AFTER_EACH_TEST_METHOD。

@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)


文章来源: Reload Spring application context after every test