在集成测试中使用Spring @ActiveProfile
作者:互联网
我正在使用@Profile Spring批注在嵌入式,独立和容器托管数据源之间进行选择.为了选择“嵌入式”,对我的集成测试进行了注释,以激活适当的配置文件:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class, classes={TestConfigWrapper.class})
@ActiveProfiles({"EMBEDDED_DB"})
public class SomeIntegrationTest {
问题是我想将’@ActiveProfiles’移到TestConfigWrapper中,但是这样做不会被执行,并且应用程序上下文不会加载任何数据源.
这意味着我必须使用@ActiveProfile注释每个集成测试,这实际上意味着它已成为集成测试的样板,并很容易妨碍将来的重构.
有没有办法我可以使用java config来做到这一点?
解决方法:
根据Hippooom的注释,使用抽象类来配置测试:
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={WebAppInitializer.class})
@ActiveProfiles({Profiles.EMBEDDED_DB})
public abstract class ProfiledIntegrationTest {
}
标签:spring-test,spring-annotations,spring-profiles,spring 来源: https://codeday.me/bug/20191030/1968326.html