@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,
SpringJUnit4ClassRunnerpublic 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.