2017-06-22 3 views
2

アプリケーションで複数のSpringブートプロファイルを設定し、アクティブになったプロファイルに従ってデータソースを変更しました。Mavenを使用したJUnitのデータソース設定

Junitテストのデータソースは別になっています。ここでは、JUnitテストのためにこのデータソースを使用し、アクティブ化されたプロファイルに関係なく使用します。

すべてのテストクラスで@TestPropertySourceを使用してこれを達成できましたが、この設定はpom.xmlの1か所で行う必要があります。私は、Juniperテストを実行するために使用されるmaven-surefire-pluginは認識していますが、そこでは特定のデータソースをどのように設定できるかはわかりません。

これを達成する方法はありますか? ご協力いただければ幸いです。

+0

だけでアクティブなプロファイルを指定するか、 'で基底クラスに注釈を付けます@ ActiveProfile'。 –

答えて

0

これを行う1つの簡単な方法は、このように、通常の構成の上にラッパーとしてのプロファイル・信頼性のconfiguratonsを作成することです:

プロファイル1:

@Profile("ds1") 
@Import(Ds1Configuration.class) 
public class Ds1ProfileConfiguration {} 

プロフィール2:

@Profile("ds2") 
@Import(Ds2Configuration.class) 
public class Ds2ProfileConfiguration {} 

インポートされた設定には実際のBean定義が含まれます:

public class Ds1Configuration { 
    @Bean 
    public DataSource dataSource(){...} 
} 

public class Ds2Configuration { 
    @Bean 
    public DataSource dataSource(){...} 
} 

あなたのテストでこれらを使用することができるようになりますので、これは、あなたのプロファイルと設定を分離します:

@SpringBootTest(classes = Ds2Configuration.class) 
関連する問題