From 467da05ab1f1fbc681855763a5627c9f08be8646 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Sat, 2 Jan 2016 09:35:10 -0800 Subject: [PATCH] Fix the test output for TestNG. --- .../com/beust/kobalt/internal/TestNgRunner.kt | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 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 14c8fee1..a792f2cb 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 @@ -12,22 +12,31 @@ public class TestNgRunner() : GenericTestRunner() { override val dependencyName = "org.testng" - override fun args(project: Project, classpath: List) = arrayListOf().apply { - if (project.testArgs.size > 0) { - addAll(project.testArgs) - } + fun defaultOutput(project: Project) = KFiles.joinDir(project.buildDirectory, "test-output") - val testngXml = File(project.directory, KFiles.joinDir("src", "test", "resources", "testng.xml")) - if (testngXml.exists()) { - add(testngXml.absolutePath) + override fun args(project: Project, classpath: List) = arrayListOf().apply { + var addOutput = true + project.testArgs.forEach { arg -> + if (arg == "-d") addOutput = false + } + + if (addOutput) { + add("-d") + add(defaultOutput(project)) + } + addAll(project.testArgs) + + val testngXml = File(project.directory, KFiles.joinDir("src", "test", "resources", "testng.xml")) + if (testngXml.exists()) { + add(testngXml.absolutePath) + } else { + val testClasses = findTestClasses(project) + if (testClasses.size > 0) { + add("-testclass") + add(testClasses.joinToString(",")) } else { - val testClasses = findTestClasses(project) - if (testClasses.size > 0) { - add("-testclass") - add(testClasses.joinToString(",")) - } else { - warn("Couldn't find any test classes for ${project.name}") - } + warn("Couldn't find any test classes for ${project.name}") } } + } }