其他分享
首页 > 其他分享> > 在集成测试中使用Spring @ActiveProfile

在集成测试中使用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