統合テスト用の Spring-boot デフォルト プロファイル 質問する

統合テスト用の Spring-boot デフォルト プロファイル 質問する

Spring-bootはスプリングプロファイルこれにより、異なる環境ごとに個別の構成を持つことができます。この機能を使用する方法の 1 つは、統合テストで使用するテスト データベースを構成することです。ただし、独自のプロファイル「test」を作成し、各テスト ファイルでこのプロファイルを明示的にアクティブ化する必要があるかどうか疑問に思います。現在、私は次のようにしています。

  1. 内部にapplication-test.propertiesを作成するsrc/main/resources

  2. そこにテスト固有の設定を記述します(今のところはデータベース名のみ)

  3. すべてのテスト ファイルに次の内容を含めます。

    @ActiveProfiles("test")
    

もっとスマートで簡潔な方法はありますか? たとえば、デフォルトのテスト プロファイルなどでしょうか?

編集1: この質問はSpring-Boot 1.4.1に関するものです

ベストアンサー1

私の知る限り、あなたのリクエストに直接対応するものは何もありませんが、役立つかもしれない提案をすることができます:

独自のテストアノテーションを使用することもできます。メタ注釈@SpringBootTestおよびで構成されます@ActiveProfiles("test")。したがって、専用のプロファイルは必要ですが、プロファイル定義がテスト全体に分散することは避けてください。

この注釈はデフォルトでプロファイルに設定されtest、メタ注釈を使用してプロファイルを上書きできます。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@SpringBootTest
@ActiveProfiles
public @interface MyApplicationTest {
  @AliasFor(annotation = ActiveProfiles.class, attribute = "profiles") String[] activeProfiles() default {"test"};
}

おすすめ記事