Package org.springframework.test.context

# Annotation Interface ActiveProfiles

@Target(TYPE) @Retention(RUNTIME) @Documented @Inherited public @interface ActiveProfiles
`ActiveProfiles` is an annotation that can be applied to a test class to declare which active bean definition profiles should be used when loading an `ApplicationContext` for integration tests.

This annotation may be used as a meta-annotation to create custom composed annotations.

This annotation will be inherited from an enclosing test class by default. See `@NestedTestConfiguration` for details.

Since:
  3.1
Author:
  Sam Brannen
See Also:
  - `SmartContextLoader`
  - `MergedContextConfiguration`
  - `ContextConfiguration`
  - `ActiveProfilesResolver`
  - `ApplicationContext`
  - `Profile`

## Optional Element Summary

Optional Elements
Modifier and Type
Optional Element
Description
`boolean`
`inheritProfiles`
Whether bean definition profiles from superclasses and enclosing classes should be inherited.
`String[]`
`profiles`
The bean definition profiles to activate.
`Class<? extends ActiveProfilesResolver>`
`resolver`
The type of `ActiveProfilesResolver` to use for resolving the active bean definition profiles programmatically.
`String[]`
`value`
Alias for `profiles()`.

## Element Details

### value

@AliasFor("profiles") String[] value
Alias for `profiles()`.

This attribute may not be used in conjunction with `profiles()`, but it may be used instead of `profiles()`.

Default:
  {}

### profiles

@AliasFor("value") String[] profiles
The bean definition profiles to activate.

This attribute may not be used in conjunction with `value()`, but it may be used instead of `value()`.

Default:
  {}

### resolver

Class<? extends ActiveProfilesResolver> resolver
The type of `ActiveProfilesResolver` to use for resolving the active bean definition profiles programmatically.

Since:
  4.0
See Also:
  - `ActiveProfilesResolver`

Default:
  org.springframework.test.context.ActiveProfilesResolver.class

### inheritProfiles

boolean inheritProfiles
Whether bean definition profiles from superclasses and enclosing classes should be inherited.

The default value is `true`, which means that a test class will inherit bean definition profiles defined by a test superclass or enclosing class. Specifically, the bean definition profiles for a test class will be appended to the list of bean definition profiles defined by a test superclass or enclosing class. Thus, subclasses and nested classes have the option of extending the list of bean definition profiles.

If `inheritProfiles` is set to `false`, the bean definition profiles for the test class will shadow and effectively replace any bean definition profiles defined by a superclass or enclosing class.

In the following example, the `ApplicationContext` for `BaseTest` will be loaded using only the "base" bean definition profile; beans defined in the "extended" profile will therefore not be loaded. In contrast, the `ApplicationContext` for `ExtendedTest` will be loaded using the "base" and "extended" bean definition profiles.

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

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

Note: `@ActiveProfiles` can be used when loading an `ApplicationContext` from path-based resource locations or annotated classes.

See Also:
  - `ContextConfiguration.locations()`
  - `ContextConfiguration.classes()`
  - `ContextConfiguration.inheritLocations()`

Default:
  true