org.junitpioneer.jupiter.ReadsEnvironmentVariable Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2016-2023 the original author or authors.
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v2.0 which
* accompanies this distribution and is available at
*
* http://www.eclipse.org/legal/epl-v20.html
*/
package org.junitpioneer.jupiter;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.junit.jupiter.api.parallel.ResourceAccessMode;
import org.junit.jupiter.api.parallel.ResourceLock;
/**
* Marks tests that read environment variables but don't use the environment variable extension themselves.
*
* During
* parallel test execution,
* all tests annotated with {@link ClearEnvironmentVariable}, {@link SetEnvironmentVariable}, {@link ReadsEnvironmentVariable}, and {@link 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.9
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PACKAGE, ElementType.TYPE })
@Inherited
@ResourceLock(value = "java.lang.System.environment", mode = ResourceAccessMode.READ)
public @interface ReadsEnvironmentVariable {
}