アノテーションインターフェース ActiveProfiles


ActiveProfiles はクラスレベルのアノテーションであり、テストクラスの ApplicationContext をロードするときに使用するアクティブな Bean 定義プロファイルを宣言するために使用されます。

このアノテーションは、カスタム構成アノテーションを作成するためのメタアノテーションとして使用することができます。

Spring Framework 5.3 以降、このアノテーションはデフォルトでそれを囲むテストクラスから継承されます。詳細については、@NestedTestConfiguration を参照してください。

導入:
3.1
作成者:
Sam Brannen
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    boolean
    スーパークラスおよびそれを囲むクラスからの Bean 定義プロファイルを継承する必要があるかどうか。
    アクティブにする Bean 定義プロファイル。
    プログラムでアクティブな Bean 定義プロファイルを解決するために使用する ActiveProfilesResolver の型。
    profiles() のエイリアス。
  • 要素の詳細

    • value

      @AliasFor("profiles") StringSE[] value
      profiles() のエイリアス。

      この属性は、profiles() と組み合わせて使用することはできませんが、profiles()代わりに使用することができます。

      デフォルト:
      {}
    • profiles

      @AliasFor("value") StringSE[] profiles
      アクティブにする Bean 定義プロファイル。

      この属性は、value() と組み合わせて使用することはできませんが、value()代わりに使用することができます。

      デフォルト:
      {}
    • resolver

      ClassSE<? extends ActiveProfilesResolver> resolver
      プログラムでアクティブな Bean 定義プロファイルを解決するために使用する ActiveProfilesResolver の型。
      導入:
      4.0
      関連事項:
      デフォルト:
      org.springframework.test.context.ActiveProfilesResolver.class
    • inheritProfiles

      boolean inheritProfiles
      スーパークラスおよびそれを囲むクラスからの Bean 定義プロファイルを継承する必要があるかどうか。

      デフォルト値は true です。これは、テストクラスがテストスーパークラスまたはそれを囲むクラスによって定義された Bean 定義プロファイルを継承することを意味します。具体的には、テストクラスの Bean 定義プロファイルは、テストスーパークラスまたはそれを囲むクラスによって定義された Bean 定義プロファイルのリストに追加されます。サブクラスとネストされたクラスには、Bean 定義プロファイルのリストを拡張するオプションがあります。

      inheritProfiles が false に設定されている場合、テストクラスの Bean 定義プロファイルはシャドウイングされ、スーパークラスまたはそれを囲むクラスによって定義された Bean 定義プロファイルを効果的に置き換えます。

      次の例では、BaseTest の ApplicationContext は、「ベース」Bean 定義プロファイルのみを使用してロードされます。「拡張」プロファイルで定義された Bean はロードされません。対照的に、ExtendedTest の ApplicationContext は、「ベース」 および 「拡張」Bean 定義プロファイルを使用してロードされます。

       @ActiveProfiles("base")
       @ContextConfiguration
       public class BaseTest {
           // ...
       }
      
       @ActiveProfiles("extended")
       @ContextConfiguration
       public class ExtendedTest extends BaseTest {
           // ...
       }
       

      メモ: @ActiveProfiles は、パスベースのリソースロケーションまたはアノテーション付きクラスから ApplicationContext をロードするときに使用できます。

      関連事項:
      デフォルト:
      true