From 3b83d8d5d9aa6c5b2cc2c82883e8439e357e56de Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Wed, 22 Mar 2017 09:36:43 -0700 Subject: [PATCH] More remote runners. --- .../com/beust/kobalt/internal/TestNgRunner.kt | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/TestNgRunner.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/TestNgRunner.kt index 10648b27..fe99ba82 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/TestNgRunner.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/TestNgRunner.kt @@ -68,25 +68,38 @@ class TestNgRunner : GenericTestRunner() { val testngDependency = (project.testDependencies.filter { it.id.contains("testng") } .firstOrNull() as AetherDependency).version - val testngDependencyVersion = StringVersion(testngDependency) + val remoteRunnerVersion = findRemoteRunnerVersion(testngDependency) val result = - if (testngDependencyVersion >= VERSION_6_10) { + if (remoteRunnerVersion != null) { context.logger.log(project.name, 1, "Modern TestNG, displaying colors") - displayPrettyColors(project, context, classpath) + displayPrettyColors(project, context, classpath, remoteRunnerVersion) } else { - context.logger.log(project.name, 1, "Older TestNG ($testngDependencyVersion), using the old runner") + context.logger.log(project.name, 1, "Older TestNG ($testngDependency), using the old runner") super.runTests(project, context, classpath, configName) } return result } - fun displayPrettyColors(project: Project, context: KobaltContext, classpath: List) + private fun findRemoteRunnerVersion(testngVersion: String) : String? { + val tng = StringVersion(testngVersion) + val result = + if (tng >= VERSION_6_10) "testng-remote6_10" + else if (tng >= StringVersion("6.9.10")) "testng-remote6_9_10" + else if (tng >= StringVersion("6.9.7")) "testng-remote6_9_7" + else if (tng >= StringVersion("6.5.1")) "testng-remote6_5_0" + else if (tng >= StringVersion("6.0")) "testng-remote6_0" + else null + return result + } + + fun displayPrettyColors(project: Project, context: KobaltContext, classpath: List, + remoteRunnerVersion: String?) : Boolean { val port = 2345 val dep = with(context.dependencyManager) { val jf = create("org.testng.testng-remote:testng-remote:1.3.0") - val tr = create("org.testng.testng-remote:testng-remote6_10:1.3.0") + val tr = create("org.testng.testng-remote:$remoteRunnerVersion:1.3.0") val testng = create("org.testng:testng:6.10") transitiveClosure(listOf(jf, tr, testng)) } @@ -105,7 +118,7 @@ class TestNgRunner : GenericTestRunner() { "src/test/resources/testng.xml") Thread { - val exitCode = runCommand { + runCommand { command = "java" directory = File(project.directory) args = passedArgs @@ -127,7 +140,7 @@ class TestNgRunner : GenericTestRunner() { data class FailedTest(val method: String, val cls: String, val stackTrace: String) val failed = arrayListOf() - var skipped = arrayListOf() + val skipped = arrayListOf() fun d(n: Int, color: String) = AsciiArt.wrap(String.format("%4d", n), color) @@ -153,9 +166,6 @@ class TestNgRunner : GenericTestRunner() { print("\r " + d(passed.size, AsciiArt.GREEN) + " | " + d(failed.size, AsciiArt.RED) + " | " + d(skipped.size, AsciiArt.YELLOW)) - // Thread.sleep(500) - // print("\r" + String.format("%4d / %4d / %4d", passed.size, failed.size, skipped.size)) - // Thread.sleep(200) } } catch(ex: IOException) { println("Exception: ${ex.message}")