org.junit.internal.requests.ClassRequest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit Show documentation
Show all versions of junit Show documentation
JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck.
package org.junit.internal.requests;
import org.junit.internal.builders.AllDefaultPossibilitiesBuilder;
import org.junit.runner.Request;
import org.junit.runner.Runner;
public class ClassRequest extends Request {
private final Object runnerLock = new Object();
/*
* We have to use the f prefix, because IntelliJ's JUnit4IdeaTestRunner uses
* reflection to access this field. See
* https://github.com/junit-team/junit/issues/960
*/
private final Class fTestClass;
private final boolean canUseSuiteMethod;
private volatile Runner runner;
public ClassRequest(Class testClass, boolean canUseSuiteMethod) {
this.fTestClass = testClass;
this.canUseSuiteMethod = canUseSuiteMethod;
}
public ClassRequest(Class testClass) {
this(testClass, true);
}
@Override
public Runner getRunner() {
if (runner == null) {
synchronized (runnerLock) {
if (runner == null) {
runner = new AllDefaultPossibilitiesBuilder(canUseSuiteMethod).safeRunnerForClass(fTestClass);
}
}
}
return runner;
}
}