我正在使用@Profile Spring注释在嵌入式,独立式和容器管理数据源之间进行选择。为了选择“嵌入式”,我的集成测试被注释为激活适当的配置文件:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class, classes={TestConfigWrapper.class})
@ActiveProfiles({"EMBEDDED_DB"})
public class SomeIntegrationTest {
问题在于我想将'@ActiveProfiles'移到TestConfigWrapper中,但这样做并没有被提起,应用程序上下文也不会加载任何DataSource。
这意味着我必须使用@ActiveProfile注释每个集成测试,这实际上意味着它成为集成测试样板并且很容易妨碍未来的重构。
有没有办法可以使用java配置执行此操作?
答案 0 :(得分:4)
来自Hippooom的评论使用抽象类来配置测试:
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={WebAppInitializer.class})
@ActiveProfiles({Profiles.EMBEDDED_DB})
public abstract class ProfiledIntegrationTest {
}