2017-02-01 12 views
4

Springブートアプリケーションでbootstrap.propertiesを使用して、Spring Cloud Config関連のプロパティを設定しています。Springブートテスト - オーバーライドするbootstrap.properties

ユニットテストのために設定サーバに接続したくないので、テスト中にこれらのプロパティを無視したいと考えています。したがって、メインbootstrap.propertiesからプロパティを完全に取り消し、テストするための新しいプロパティを提供するか、または選択的なプロパティをオーバーライドする方法を探しています。

src/test/resources/bootstrap.properties,src/test/resources/bootstrap-test.propertiesspring.cloud.config.enabled=falseというプロパティを作成しようとしましたが、機能しませんでした。

我々はTestClassを

static { 
    System.setProperty("spring.cloud.config.enabled", "false"); 
} 

を開始する前に、以下のように設定しようとしましたが、それはうまくいきませんでした。

Springブートのドキュメントは、application.propertiesの動作についてはかなり良いですが、bootstrap.propertiesという参照も1件も見つかりませんでした。

テスト中にbootstrap.propertiesをオーバーライドする信頼できる方法については、何か助けてください。試行錯誤の多くがtestに春のプロファイルを設定することで、それが実際にbootstrap-test.propertiesを選び、メインbootstrap.propertiesファイルであることを兼ね備えたことが判明した後

答えて

3

を(ここでは自分の質問に答えます)。 spring.cloud.config.enabled=falseを設定する。この場合

は、まだ私たちは完全に不活性クラウドサーバーに bootstrap-test.propertiesでは、このプロパティをfalseに設定する必要がありました、それは spring.cloud.config.server.bootstrap = trueに設定したメインのブートストラップのようにブートストラップしようとしていました。

希望すると、誰かに役立ちます。あなたは、

@SpringBootTest(properties = "spring.cloud.config.enabled=false") 

をそれ以外のことができます:

+0

はありません私のために働く。デフォルトでは 'bootstrap-test.properties'は無視されます。私は '@TestPropertySource(locations =" classpath:bootstrap-test.properties ")'を '@ SpringBootTest'クラスに追加しなければなりませんでした。 Springブートスターター1.5.3.RELEASEの使用。 – user909481

+0

私は以下を行った: *変更*ビルド。このようなユニットテストのためのスプリング・プロファイルを指定するためのGradle: 'テスト{ \t systemProperties System.properties \t systemProperties.put( "spring.profiles.active"、 "ユニットテスト")を }' '* *作成bootstrap- unittest.yml'を実行し、 'src/test/resources'に配置します。 'spring.cloud'が有効になっているすべてのプロパティがfalseに設定されています。 – toddcscar

+0

@ user909481 'bootstrap-test.properties'はテストに' @ActiveProfiles( 'test') 'がある場合にのみ自動的に選択されます。すべてのテストでそれを無効にする必要がある場合は、 – Doug

4

あなたは以下でbootstrap.propertiesのプロパティをオーバーライドすることができ@SpringBootTest注釈を使用している場合

  1. 作成し、あなたのテストクラスに@ActiveProfiles('test')を追加しますファイル名bootstrap-test.properties
  2. 上書きするプロパティを追加する例えば、 spring.cloud.config.enabled=false

更新:あなたがのためにすべてのテストを春の雲の設定を無効にしたい場合は、単純に次のプロパティを使用してtest/resourcesフォルダ内bootstrap.propertiesを作成することができます。

spring.cloud.config.enabled=false

関連する問題