diff options
Diffstat (limited to 'testng')
-rw-r--r-- | testng/src/mill/testng/ResultEvent.java | 2 | ||||
-rw-r--r-- | testng/src/mill/testng/TestNGFramework.java | 12 | ||||
-rw-r--r-- | testng/src/mill/testng/TestNGInstance.java | 11 | ||||
-rw-r--r-- | testng/src/mill/testng/TestNGRunner.java | 29 |
4 files changed, 27 insertions, 27 deletions
diff --git a/testng/src/mill/testng/ResultEvent.java b/testng/src/mill/testng/ResultEvent.java index 215723cd..6e2a50d6 100644 --- a/testng/src/mill/testng/ResultEvent.java +++ b/testng/src/mill/testng/ResultEvent.java @@ -16,7 +16,7 @@ public class ResultEvent { } public Fingerprint fingerprint() { - return Annotated.instance; + return TestNGFingerprint.instance; } public Selector selector() { diff --git a/testng/src/mill/testng/TestNGFramework.java b/testng/src/mill/testng/TestNGFramework.java index 924dc113..6e993fcc 100644 --- a/testng/src/mill/testng/TestNGFramework.java +++ b/testng/src/mill/testng/TestNGFramework.java @@ -9,7 +9,7 @@ public class TestNGFramework implements Framework { public String name(){ return "TestNG"; } public Fingerprint[] fingerprints() { - return new Fingerprint[]{Annotated.instance}; + return new Fingerprint[]{TestNGFingerprint.instance}; } @Override @@ -18,12 +18,8 @@ public class TestNGFramework implements Framework { } } -class Annotated implements AnnotatedFingerprint{ - final public static Annotated instance = new Annotated("org.testng.annotations.Test"); - String annotationName; - public Annotated(String annotationName) { - this.annotationName = annotationName; - } - public String annotationName(){return annotationName;} +class TestNGFingerprint implements AnnotatedFingerprint{ + final public static TestNGFingerprint instance = new TestNGFingerprint(); + public String annotationName(){return "org.testng.annotations.Test";} public boolean isModule(){return false;} } diff --git a/testng/src/mill/testng/TestNGInstance.java b/testng/src/mill/testng/TestNGInstance.java index 9ad990e0..4cf274d3 100644 --- a/testng/src/mill/testng/TestNGInstance.java +++ b/testng/src/mill/testng/TestNGInstance.java @@ -54,19 +54,12 @@ class TestNGListener implements ITestListener{ public class TestNGInstance extends TestNG{ public TestNGInstance(Logger[] loggers, ClassLoader testClassLoader, - String[] testOptions, - String suiteName, + CommandLineArgs args, EventHandler eventHandler) { addClassLoader(testClassLoader); - try{ - this.setTestClasses(new Class[]{Class.forName(suiteName)}); - }catch(ClassNotFoundException e){ - throw new RuntimeException(e); - } this.addListener(new TestNGListener(eventHandler)); - CommandLineArgs args = new CommandLineArgs(); - new JCommander(args, testOptions); // args is an output parameter of the constructor! + configure(args); } } 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; } |