aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4Runner.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-06-03 21:50:50 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-06-06 08:03:24 +0000
commit91d3433f34c87ac9f354a4a87a322e5a14531607 (patch)
treebcd04cb1969a3ba7760a9f99acad4be927c10219 /src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4Runner.java
parent1d70780d78d4c4c79b00c09ab60820be75cb87bb (diff)
Convert the Bazel JUnit4 test runner from Guice to Dagger.
-- MOS_MIGRATED_REVID=124008772
Diffstat (limited to 'src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4Runner.java')
-rw-r--r--src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4Runner.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4Runner.java b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4Runner.java
index 4134131216..10447a7b70 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4Runner.java
+++ b/src/java_tools/junitrunner/java/com/google/testing/junit/runner/junit4/JUnit4Runner.java
@@ -51,6 +51,7 @@ public class JUnit4Runner {
private final PrintStream testRunnerOut;
private final JUnit4Config config;
private final Set<RunListener> runListeners;
+ private final Set<Initializer> initializers;
private GoogleTestSecurityManager googleTestSecurityManager;
private SecurityManager previousSecurityManager;
@@ -59,15 +60,21 @@ public class JUnit4Runner {
* Creates a runner.
*/
@Inject
- private JUnit4Runner(Request request, CancellableRequestFactory requestFactory,
- Supplier<TestSuiteModel> modelSupplier, @Stdout PrintStream testRunnerOut,
- JUnit4Config config, Set<RunListener> runListeners) {
+ JUnit4Runner(
+ Request request,
+ CancellableRequestFactory requestFactory,
+ Supplier<TestSuiteModel> modelSupplier,
+ @Stdout PrintStream testRunnerOut,
+ JUnit4Config config,
+ Set<RunListener> runListeners,
+ Set<Initializer> initializers) {
this.request = request;
this.requestFactory = requestFactory;
this.modelSupplier = modelSupplier;
this.config = config;
this.testRunnerOut = testRunnerOut;
this.runListeners = runListeners;
+ this.initializers = initializers;
}
/**
@@ -79,6 +86,10 @@ public class JUnit4Runner {
testRunnerOut.println("JUnit4 Test Runner");
checkJUnitRunnerApiVersion();
+ for (Initializer init : initializers) {
+ init.initialize();
+ }
+
// Sharding
TestSuiteModel model = modelSupplier.get();
Filter shardingFilter = model.getShardingFilter();
@@ -261,4 +272,15 @@ public class JUnit4Runner {
public void run(RunNotifier notifier) {
}
}
+
+ /**
+ * A simple initializer which can be used to provide additional initialization logic in custom
+ * runners.
+ *
+ * <p>Initializers will be run in unspecified order. If an exception is thrown it will not be
+ * deemed recoverable and will cause the runner to error-out.
+ */
+ public interface Initializer {
+ void initialize();
+ }
}