-
@Retention(RUNTIME) @Target({METHOD,TYPE}) @Inherited @Repeatable(ClearEnvironmentVariables.class) @ExtendWith(EnvironmentVariableExtension.class) public @interface ClearEnvironmentVariable@ClearEnvironmentVariableis a JUnit Jupiter extension to clear the value of an environment variable for a test execution.The key of the environment variable to be cleared must be specified via
key(). After the annotated element has been executed, the original value or the value of the higher-level container is restored.ClearEnvironmentVariablecan 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 cleared before every test inside that class.WARNING: Java considers environment variables to be immutable, so this extension uses reflection to change them. This requires that the
SecurityManagerallows 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, andWritesEnvironmentVariableare executed sequentially to guarantee correctness under mutation of shared global state.For more details and examples, see the documentation on
@ClearEnvironmentVariable and @SetEnvironmentVariable.- Since:
- 0.6
-
-
Required Element Summary
Required Elements Modifier and Type Required Element Description java.lang.StringkeyThe key of the environment variable to be cleared.
-