@Documented @Inherited @Retention(value=RUNTIME) @Target(value={TYPE,METHOD}) public @interface IfProfileValue
Test annotation to indicate that a test is enabled for a specific testing
profile or environment. If the configured ProfileValueSource
returns
a matching value
for the provided name
, the
test will be enabled.
Note: @IfProfileValue
can be applied at the class level,
the method level, or both. @IfProfileValue
at the class
level overrides method-level usage of @IfProfileValue
for
any methods within that class.
Examples: when using SystemProfileValueSource
as the
ProfileValueSource
implementation, you can configure a test method to
run only on Java VMs from Sun Microsystems as follows:
@IfProfileValue(name = "java.vendor", value = "Sun Microsystems Inc.") public void testSomething() { // ... }
You can alternatively configure @IfProfileValue
with
OR semantics for multiple values
as follows
(assuming a ProfileValueSource
has been appropriately configured for
the "test-groups" name):
@IfProfileValue(name = "test-groups", values = { "unit-tests", "integration-tests" }) public void testWhichRunsForUnitOrIntegrationTestGroups() { // ... }
ProfileValueSource
,
ProfileValueSourceConfiguration
,
ProfileValueUtils
,
AbstractJUnit38SpringContextTests
,
AbstractJUnit4SpringContextTests
,
SpringJUnit4ClassRunner
public abstract String name
name
of the profile value against which to
test.public abstract String value
value
of the profile value
for the given name
.
Note: Assigning values to both value()
and values()
will lead to a configuration conflict.