3

@Profile Spring アノテーションを使用して、組み込み、スタンドアロン、およびコンテナー管理のデータ ソースを選択しています。「埋め込み」を選択するために、適切なプロファイルをアクティブにするように統合テストに注釈が付けられます。

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

問題は、'@ActiveProfiles' を TestConfigWrapper に移動したいのですが、これを行っても取得されず、アプリケーション コンテキストが DataSource をロードしません。

これは、すべての統合テストに @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 に答える