diff options
Diffstat (limited to 'contrib/testng/src/TestNGInstance.java')
-rw-r--r-- | contrib/testng/src/TestNGInstance.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/contrib/testng/src/TestNGInstance.java b/contrib/testng/src/TestNGInstance.java new file mode 100644 index 00000000..4cf274d3 --- /dev/null +++ b/contrib/testng/src/TestNGInstance.java @@ -0,0 +1,67 @@ +package mill.testng; + + +import org.testng.*; +import sbt.testing.EventHandler; +import sbt.testing.Logger; + +import com.beust.jcommander.JCommander; + +import java.net.URLClassLoader; +import java.util.Arrays; + +class TestNGListener implements ITestListener{ + EventHandler basket; + String lastName = ""; + public TestNGListener(EventHandler basket){ + this.basket = basket; + } + public void onTestStart(ITestResult iTestResult) { + String newName = iTestResult.getTestClass().getName() + " " + iTestResult.getName() + " "; + if(!newName.equals(lastName)){ + if (!lastName.equals("")){ + System.out.println(); + } + lastName = newName; + System.out.print(lastName); + } + } + + public void onTestSuccess(ITestResult iTestResult) { + System.out.print('+'); + basket.handle(ResultEvent.success(iTestResult)); + } + + public void onTestFailure(ITestResult iTestResult) { + System.out.print('X'); + basket.handle(ResultEvent.failure(iTestResult)); + } + + public void onTestSkipped(ITestResult iTestResult) { + System.out.print('-'); + basket.handle(ResultEvent.skipped(iTestResult)); + } + + public void onTestFailedButWithinSuccessPercentage(ITestResult iTestResult) { + basket.handle(ResultEvent.failure(iTestResult)); + } + + public void onStart(ITestContext iTestContext) {} + + public void onFinish(ITestContext iTestContext) {} +} + +public class TestNGInstance extends TestNG{ + public TestNGInstance(Logger[] loggers, + ClassLoader testClassLoader, + CommandLineArgs args, + EventHandler eventHandler) { + addClassLoader(testClassLoader); + + this.addListener(new TestNGListener(eventHandler)); + + configure(args); + } +} + + |