org.springframework.test.annotation
Annotation Type IfProfileValue


@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() {
        // ...
 }
 

Since:
2.0
Author:
Rod Johnson, Sam Brannen
See Also:
ProfileValueSource, ProfileValueSourceConfiguration, ProfileValueUtils, AbstractJUnit38SpringContextTests, AbstractJUnit4SpringContextTests, SpringJUnit4ClassRunner

Required Element Summary
 String name
          The name of the profile value against which to test.
 
Optional Element Summary
 String value
          A single, permissible value of the profile value for the given name.
 String[] values
          A list of all permissible values of the profile value for the given name.
 

Element Detail

name

public abstract String name
The name of the profile value against which to test.

value

public abstract String value
A single, permissible value of the profile value for the given name.

Note: Assigning values to both value() and values() will lead to a configuration conflict.

Default:
""

values

public abstract String[] values
A list of all permissible values of the profile value for the given name.

Note: Assigning values to both value() and values() will lead to a configuration conflict.

Default:
{}