3

我正在使用 @Profile Spring 注释在嵌入式、独立和容器管理的数据源之间进行选择。为了选择“嵌入式”,我的集成测试被注释以激活适当的配置文件:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class, classes={TestConfigWrapper.class})
@ActiveProfiles({"EMBEDDED_DB"})
public class SomeIntegrationTest {

问题是我想将“@ActiveProfiles”移动到 TestConfigWrapper 中,但是这样做不会被选中,并且应用程序上下文不会加载任何数据源。

这意味着我必须使用 @ActiveProfile 注释每个集成测试,这实际上意味着它成为集成测试样板并且很容易阻碍未来的重构。

有没有办法使用 java config 来做到这一点?

4

1 回答 1

4

根据 Hippooom 的评论,使用抽象类来配置测试:

@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={WebAppInitializer.class})
@ActiveProfiles({Profiles.EMBEDDED_DB})
public abstract class ProfiledIntegrationTest {

}
于 2013-09-06T08:21:22.727 回答