IfProfileValue (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

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: `&#064;IfProfileValue` can be applied at the class level, the method level, or both. `&#064;IfProfileValue` at the class level overrides method-level usage of `&#064;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 `&#064;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

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `String` | `name` The `name` of the profile value against which to test.

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `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:
        {}