Annotation Type SetEnvironmentVariable


@SetEnvironmentVariable is a JUnit Jupiter extension to set the value of an environment variable for a test execution.

The key and value of the environment variable to be set must be specified via key() and value(). After the annotated method has been executed, the original value or the value of the higher-level container is restored.

SetEnvironmentVariable can be used on the method and on the class level. It is repeatable and inherited from higher-level containers. If a class is annotated, the configured property will be set before every test inside that class. Any method-level configurations will override the class-level configurations.

WARNING: Java considers environment variables to be immutable, so this extension uses reflection to change them. This requires that the SecurityManager allows modifications and can potentially break on different operating systems and Java versions. Be aware that this is a fragile solution and consider finding a better one for your specific situation. If you're running on Java 9 or later and are encountering warnings or errors, check the documentation.

During parallel test execution, all tests annotated with ClearEnvironmentVariable, SetEnvironmentVariable, ReadsEnvironmentVariable, and WritesEnvironmentVariable are scheduled in a way that guarantees correctness under mutation of shared global state.

For more details and examples, see the documentation on @ClearEnvironmentVariable and @SetEnvironmentVariable.

Since:
0.6
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    Containing annotation of repeatable @SetEnvironmentVariable.
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    The key of the system property to be set.
    The value of the system property to be set.
  • Element Details

    • key

      String key
      The key of the system property to be set.
    • value

      String value
      The value of the system property to be set.