Skip to content

Commit

Permalink
add CompositeTestRunListener
Browse files Browse the repository at this point in the history
  • Loading branch information
tagantroy committed Apr 25, 2018
1 parent 8922fea commit 33bccfa
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package com.malinskiy.marathon.android.executor
import com.android.ddmlib.IDevice
import com.android.ddmlib.testrunner.RemoteAndroidTestRunner
import com.malinskiy.marathon.android.ApkParser
import com.malinskiy.marathon.android.executor.listeners.CompositeTestRunListener
import com.malinskiy.marathon.android.executor.listeners.DebugTestRunListener
import com.malinskiy.marathon.execution.Configuration
import com.malinskiy.marathon.test.TestBatch
import mu.KotlinLogging
Expand All @@ -25,6 +27,6 @@ class AndroidDeviceTestRunner(private val device: IDevice) {
logger.debug { "tests = ${tests.toList()}" }

runner.setClassNames(tests)
runner.run(DebugTestRunListener(device))
runner.run(CompositeTestRunListener(listOf(DebugTestRunListener(device))))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.malinskiy.marathon.android.executor.listeners

import com.android.ddmlib.testrunner.ITestRunListener
import com.android.ddmlib.testrunner.TestIdentifier

class CompositeTestRunListener(private val listeners: List<ITestRunListener>) : ITestRunListener {
private inline fun execute(f: (ITestRunListener) -> Unit) {
listeners.forEach(f)
}

override fun testRunStarted(runName: String?, testCount: Int) {
execute { it.testRunStarted(runName, testCount) }
}

override fun testStarted(test: TestIdentifier?) {
execute { it.testStarted(test) }
}

override fun testAssumptionFailure(test: TestIdentifier?, trace: String?) {
execute { it.testAssumptionFailure(test, trace) }
}

override fun testRunStopped(elapsedTime: Long) {
execute { it.testRunStopped(elapsedTime) }
}

override fun testFailed(test: TestIdentifier?, trace: String?) {
execute { it.testFailed(test, trace) }
}

override fun testEnded(test: TestIdentifier?, testMetrics: MutableMap<String, String>?) {
execute { it.testEnded(test, testMetrics) }
}

override fun testIgnored(test: TestIdentifier?) {
execute { it.testIgnored(test) }
}

override fun testRunFailed(errorMessage: String?) {
execute { it.testRunFailed(errorMessage) }
}

override fun testRunEnded(elapsedTime: Long, runMetrics: MutableMap<String, String>?) {
execute { it.testRunEnded(elapsedTime, runMetrics) }
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.malinskiy.marathon.android.executor
package com.malinskiy.marathon.android.executor.listeners

import com.android.ddmlib.IDevice
import com.android.ddmlib.testrunner.ITestRunListener
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.malinskiy.marathon.android.executor.listeners

import com.android.ddmlib.testrunner.ITestRunListener
import com.android.ddmlib.testrunner.TestIdentifier

open class NoOpTestRunListener : ITestRunListener {
override fun testRunStarted(runName: String, testCount: Int) {}

override fun testStarted(test: TestIdentifier) {}

override fun testFailed(test: TestIdentifier, trace: String) {}

override fun testAssumptionFailure(test: TestIdentifier, trace: String) {}

override fun testIgnored(test: TestIdentifier) {}

override fun testEnded(test: TestIdentifier, testMetrics: Map<String, String>) {}

override fun testRunFailed(errorMessage: String) {}

override fun testRunStopped(elapsedTime: Long) {}

override fun testRunEnded(elapsedTime: Long, runMetrics: Map<String, String>) {}
}

0 comments on commit 33bccfa

Please sign in to comment.