summaryrefslogtreecommitdiff
path: root/testng/src/mill/testng/TestNGRunner.java
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-04-08 23:39:40 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2018-04-09 13:20:45 -0700
commitdb8d967d461fb6323fd83c40ef81e26f2d0fa225 (patch)
treecad8bb41b7337f38fed00536498e437c7007ebb9 /testng/src/mill/testng/TestNGRunner.java
parent41180adbc0d9e67677e9cd5d1dbd25208672d5d5 (diff)
downloadmill-db8d967d461fb6323fd83c40ef81e26f2d0fa225.tar.gz
mill-db8d967d461fb6323fd83c40ef81e26f2d0fa225.tar.bz2
mill-db8d967d461fb6323fd83c40ef81e26f2d0fa225.zip
Get first `caffeine.test` suite running in `CaffeineTests`
Diffstat (limited to 'testng/src/mill/testng/TestNGRunner.java')
-rw-r--r--testng/src/mill/testng/TestNGRunner.java73
1 files changed, 54 insertions, 19 deletions
diff --git a/testng/src/mill/testng/TestNGRunner.java b/testng/src/mill/testng/TestNGRunner.java
index d59c60da..0ad6caa7 100644
--- a/testng/src/mill/testng/TestNGRunner.java
+++ b/testng/src/mill/testng/TestNGRunner.java
@@ -1,37 +1,72 @@
package mill.testng;
-import org.scalatools.testing.Fingerprint;
-import org.scalatools.testing.Logger;
-import org.scalatools.testing.Runner2;
-import org.scalatools.testing.EventHandler;
+import sbt.testing.*;
-public class TestNGRunner extends Runner2 {
- ClassLoader testClassLoader;
- Logger[] loggers;
- TestRunState state;
- public TestNGRunner(ClassLoader testClassLoader, Logger[] loggers, TestRunState state) {
- this.testClassLoader = testClassLoader;
- this.loggers = loggers;
- this.state = state;
+class TestNGTask implements Task {
+
+ TaskDef taskDef;
+ TestNGRunner runner;
+ public TestNGTask(TaskDef taskDef, TestNGRunner runner){
+ this.taskDef = taskDef;
+ this.runner = runner;
}
- public void run(String testClassname, Fingerprint fingerprint, EventHandler eventHandler, String[] testOptions) {
+
+ @Override
+ public String[] tags() {
+ return new String[0];
+ }
+
+ @Override
+ public Task[] execute(EventHandler eventHandler, Logger[] loggers) {
if (TestRunState.permissionToExecute.tryAcquire()) {
TestNGInstance.start(
TestNGInstance.loggingTo(loggers)
- .loadingClassesFrom(testClassLoader)
- .using(testOptions)
- .storingEventsIn(state.recorder)
+ .loadingClassesFrom(runner.testClassLoader)
+ .using(runner.args())
+ .storingEventsIn(runner.state.recorder)
);
- state.testCompletion.countDown();
+ runner.state.testCompletion.countDown();
}
try{
- state.testCompletion.await();
+ runner.state.testCompletion.await();
}catch(InterruptedException e){
throw new RuntimeException(e);
}
- state.recorder.replayTo(eventHandler, testClassname, loggers);
+ runner.state.recorder.replayTo(eventHandler, taskDef.fullyQualifiedName(), loggers);
+ return new Task[0];
+ }
+
+ @Override
+ public TaskDef taskDef() {
+ return taskDef;
+ }
+}
+public class TestNGRunner implements Runner {
+ ClassLoader testClassLoader;
+ TestRunState state;
+ String[] args;
+ String[] remoteArgs;
+ public TestNGRunner(String[] args, String[] remoteArgs, ClassLoader testClassLoader, TestRunState state) {
+ this.testClassLoader = testClassLoader;
+ this.state = state;
+ this.args = args;
+ this.remoteArgs = remoteArgs;
+ }
+
+ public Task[] tasks(TaskDef[] taskDefs) {
+ Task[] out = new Task[taskDefs.length];
+ for (int i = 0; i < taskDefs.length; i += 1) {
+ out[i] = new TestNGTask(taskDefs[i], this);
+ }
+ return out;
}
+
+ public String done() { return null; }
+
+ public String[] remoteArgs() { return remoteArgs; }
+
+ public String[] args() { return args; }
}