summaryrefslogtreecommitdiff
path: root/testng/src/mill/testng/TestNGRunner.java
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-04-09 09:07:39 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2018-04-09 13:20:45 -0700
commit9295d5240a417cd09c33317ab2d2a99a36e50485 (patch)
tree1fb5b3f2a818517840c42ecd1c0697f091443912 /testng/src/mill/testng/TestNGRunner.java
parent11122c48452d40eb32086fa247ce06d5d6f1a789 (diff)
downloadmill-9295d5240a417cd09c33317ab2d2a99a36e50485.tar.gz
mill-9295d5240a417cd09c33317ab2d2a99a36e50485.tar.bz2
mill-9295d5240a417cd09c33317ab2d2a99a36e50485.zip
caffeine core and guava tests seem to pass
Diffstat (limited to 'testng/src/mill/testng/TestNGRunner.java')
-rw-r--r--testng/src/mill/testng/TestNGRunner.java29
1 files changed, 20 insertions, 9 deletions
diff --git a/testng/src/mill/testng/TestNGRunner.java b/testng/src/mill/testng/TestNGRunner.java
index 29ebb7dd..0ad05f76 100644
--- a/testng/src/mill/testng/TestNGRunner.java
+++ b/testng/src/mill/testng/TestNGRunner.java
@@ -1,17 +1,25 @@
package mill.testng;
+import com.beust.jcommander.JCommander;
+import org.testng.CommandLineArgs;
import sbt.testing.*;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.List;
class TestNGTask implements Task {
TaskDef taskDef;
TestNGRunner runner;
- public TestNGTask(TaskDef taskDef, TestNGRunner runner){
+ CommandLineArgs cliArgs;
+ public TestNGTask(TaskDef taskDef,
+ TestNGRunner runner,
+ CommandLineArgs cliArgs){
this.taskDef = taskDef;
this.runner = runner;
+ this.cliArgs = cliArgs;
}
@Override
@@ -21,12 +29,10 @@ class TestNGTask implements Task {
@Override
public Task[] execute(EventHandler eventHandler, Logger[] loggers) {
- System.out.println("Executing " + taskDef.fullyQualifiedName());
new TestNGInstance(
loggers,
runner.testClassLoader,
- runner.args(),
- taskDef.fullyQualifiedName(),
+ cliArgs,
eventHandler
).run();
return new Task[0];
@@ -49,12 +55,17 @@ public class TestNGRunner implements Runner {
}
public Task[] tasks(TaskDef[] taskDefs) {
- System.out.println("TestNGRunner#tasks " + Arrays.toString(taskDefs));
- Task[] out = new Task[taskDefs.length];
- for (int i = 0; i < taskDefs.length; i += 1) {
- out[i] = new TestNGTask(taskDefs[i], this);
+ CommandLineArgs cliArgs = new CommandLineArgs();
+ new JCommander(cliArgs, args); // args is an output parameter of the constructor!
+ if(cliArgs.testClass == null){
+ String[] names = new String[taskDefs.length];
+ for(int i = 0; i < taskDefs.length; i += 1){
+ names[i] = taskDefs[i].fullyQualifiedName();
+ }
+ cliArgs.testClass = String.join(",", names);
}
- return out;
+ if (taskDefs.length == 0) return new Task[]{};
+ else return new Task[]{new TestNGTask(taskDefs[0], this, cliArgs)};
}
public String done() { return null; }