アノテーションインターフェース ActiveProfiles
ActiveProfiles
は、テストクラスに適用して、統合テスト用に ApplicationContext
をロードするときにどのアクティブな Bean 定義プロファイルを使用するかを宣言できるアノテーションです。このアノテーションは、カスタム構成アノテーションを作成するためのメタアノテーションとして使用することができます。
Spring Framework 5.3 以降、このアノテーションはデフォルトでそれを囲むテストクラスから継承されます。詳細については、@NestedTestConfiguration
を参照してください。
- 導入:
- 3.1
- 作成者:
- Sam Brannen
- 関連事項:
オプション要素のサマリー
修飾子と型オプションの要素説明boolean
スーパークラスおよびそれを囲むクラスからの Bean 定義プロファイルを継承する必要があるかどうか。StringSE[]
アクティブにする Bean 定義プロファイル。ClassSE<? extends ActiveProfilesResolver>
プログラムでアクティブな Bean 定義プロファイルを解決するために使用するActiveProfilesResolver
の型。StringSE[]
profiles()
のエイリアス。
要素の詳細
value
profiles()
のエイリアス。この属性は、
profiles()
と組み合わせて使用することはできませんが、profiles()
の代わりに使用することができます。- デフォルト:
- {}
profiles
- デフォルト:
- {}
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