From 6c39516380b780b37eb8fffd63f7ed3d7d162b05 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Tue, 26 Mar 2019 19:49:07 +0700 Subject: [PATCH] Test runner: Report ignored test suites --- .../native/internal/test/TeamCityLogger.kt | 7 ++++ .../kotlin/native/internal/test/TestLogger.kt | 1 + .../native/internal/test/TestStatistics.kt | 36 ++++++++++++++----- 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/runtime/src/main/kotlin/kotlin/native/internal/test/TeamCityLogger.kt b/runtime/src/main/kotlin/kotlin/native/internal/test/TeamCityLogger.kt index 05284060044..f23d90fcaed 100644 --- a/runtime/src/main/kotlin/kotlin/native/internal/test/TeamCityLogger.kt +++ b/runtime/src/main/kotlin/kotlin/native/internal/test/TeamCityLogger.kt @@ -40,6 +40,13 @@ internal class TeamCityLogger : BaseTestLogger() { override fun startSuite(suite: TestSuite) = report("testSuiteStarted" + " name='${suite.tcName}'" + " locationHint='ktest:suite://${suite.tcName}'") + + override fun ignoreSuite(suite: TestSuite) { + startSuite(suite) + suite.testCases.values.forEach { ignore(it) } + finishSuite(suite, 0L) + } + override fun finishSuite(suite: TestSuite, timeMillis: Long) = report("testSuiteFinished name='${suite.tcName}'") override fun pass(testCase: TestCase, timeMillis: Long) = finish(testCase, timeMillis) diff --git a/runtime/src/main/kotlin/kotlin/native/internal/test/TestLogger.kt b/runtime/src/main/kotlin/kotlin/native/internal/test/TestLogger.kt index 19799889534..46ea69c791f 100644 --- a/runtime/src/main/kotlin/kotlin/native/internal/test/TestLogger.kt +++ b/runtime/src/main/kotlin/kotlin/native/internal/test/TestLogger.kt @@ -30,6 +30,7 @@ internal open class TestLoggerWithStatistics: BaseTestLogger() { override fun startIteration(runner: TestRunner, iteration: Int, suites: Collection) = statistics.reset() override fun finishSuite(suite: TestSuite, timeMillis: Long) = statistics.registerSuite() + override fun ignoreSuite(suite: TestSuite) = statistics.registerIgnore(suite.size) override fun pass(testCase: TestCase, timeMillis: Long) = statistics.registerPass() override fun fail(testCase: TestCase, e: Throwable, timeMillis: Long) = statistics.registerFail(testCase) override fun ignore(testCase: TestCase) = statistics.registerIgnore() diff --git a/runtime/src/main/kotlin/kotlin/native/internal/test/TestStatistics.kt b/runtime/src/main/kotlin/kotlin/native/internal/test/TestStatistics.kt index b11ee1ec396..63a52af6ef6 100644 --- a/runtime/src/main/kotlin/kotlin/native/internal/test/TestStatistics.kt +++ b/runtime/src/main/kotlin/kotlin/native/internal/test/TestStatistics.kt @@ -26,26 +26,44 @@ internal class MutableTestStatistics: TestStatistics { override var totalSuites: Int = 0; private set override val failed: Int - get() = failedTests_.size + get() = _failedTests.size override val hasFailedTests: Boolean - get() = failedTests_.isNotEmpty() + get() = _failedTests.isNotEmpty() - private val failedTests_ = mutableListOf() + private val _failedTests = mutableListOf() override val failedTests: Collection - get() = failedTests_ + get() = _failedTests - fun registerSuite() { totalSuites++ } + fun registerSuite(count: Int = 1) { + require(count > 0) + totalSuites += count + } - fun registerPass() { total++; passed++ } - fun registerFail(testCase: TestCase) { total++; failedTests_.add(testCase) } - fun registerIgnore() { total++; ignored++ } + fun registerPass(count: Int = 1) { + require(count > 0) + total += count + passed += count + } + + fun registerFail(testCases: Collection) { + total += testCases.size + _failedTests.addAll(testCases) + } + + fun registerFail(testCase: TestCase) = registerFail(listOf(testCase)) + + fun registerIgnore(count: Int = 1) { + require(count > 0) + total += count + ignored += count + } fun reset() { total = 0 passed = 0 ignored = 0 totalSuites = 0 - failedTests_.clear() + _failedTests.clear() } }