@Documented @Inherited @Retention(value=RUNTIME) @Target(value=TYPE) public @interface ActiveProfiles
ActiveProfiles
is a class-level annotation that is used to declare
which active bean definition profiles should be used when loading
an ApplicationContext
for test classes.SmartContextLoader
,
MergedContextConfiguration
,
ContextConfiguration
,
ApplicationContext
,
Profile
Modifier and Type | Optional Element and Description |
---|---|
boolean |
inheritProfiles
Whether or not bean definition profiles from superclasses should be
inherited.
|
String[] |
profiles
The bean definition profiles to activate.
|
String[] |
value
Alias for
profiles() . |
public abstract String[] value
profiles()
.
This attribute may not be used in conjunction
with profiles()
, but it may be used instead of
profiles()
.
public abstract String[] profiles
This attribute may not be used in conjunction
with value()
, but it may be used instead of
value()
.
public abstract boolean inheritProfiles
The default value is true
, which means that a test
class will inherit bean definition profiles defined by a
test superclass. Specifically, the bean definition profiles for a test
class will be appended to the list of bean definition profiles
defined by a test superclass. Thus, subclasses 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.
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.
ContextConfiguration.locations()
,
ContextConfiguration.classes()
,
ContextConfiguration.inheritLocations()