我在同一个包中创建了几个单元测试类。所有这些类都只有一个测试用例,并且具有相同的注释,如下所示:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes= {TestConfig.class} )
当我运行这些测试用例时,我希望每个测试用例都在其自己的应用程序上下文中运行。但是似乎同一个包中的所有测试用例共享一个单独的应用程序上下文,无论它是从maven命令行运行,还是在Eclipse中选择包作为junit运行。
如果我使用TestConfig1、TestConfig2等名称复制TestConfig,并使用不同TestConfig类注释不同的测试类,那么每个测试都将在其自己的上下文实例中运行。
有没有其他优雅的方法来实现这一点呢?
非常感谢。
发布于 2017-04-11 00:22:47
这是Spring测试的默认行为。Spring测试默认跨测试缓存应用程序上下文。这减少了测试执行时间。
我不知道你的用例。如果您有任何地方弄脏了应用程序上下文(更改了由springs管理的bean的状态,这会影响后续的测试),那么您可以使用@DirtiesContext来注释测试方法。Spring测试重新加载这些方法的上下文。请参阅下面的链接如何使用DirtiesContext。
无论何时需要,都要小心使用这个特性,因为这可能会以指数级增加您的测试执行时间。
https://stackoverflow.com/questions/43327225
复制相似问题