1. ホーム
  2. spring-mvc

[解決済み] SpringBootテストで異なるapplication.ymlを読み込む

2023-03-30 04:24:31

質問

src/main/resources/config/application.ymlを実行するspring bootアプリを使用しています。

によってテストケースを実行すると、:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
public class MyIntTest{
}

テストコードでは、プロパティを読み込むために私の application.yml ファイルがまだ実行されています。 テストケースを実行するときに、別の *.yml ファイルを実行することが可能かどうか疑問に思っています。

どのように解決するのですか?

プロファイルを使用する方法があります。というファイルを作成し application-test.yml というファイルを作り、テストに必要なすべてのプロパティをそのファイルに移動させ、そのファイルに @ActiveProfiles アノテーションをテストクラスに追加します。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
@ActiveProfiles("test") // Like this
public class MyIntTest{
}

注意点としては、application-test.ymlも読み込むので、application.ymlにあるすべてのプロパティがそのまま適用されることです。もしそうしたくない場合は、それらにもプロファイルを使用するか、application-test.ymlでそれらを上書きしてください。