Skip to content

Commit

Permalink
Add cli report (MarathonLabs#152)
Browse files Browse the repository at this point in the history
* Add CLI report

* Add failed test report to ExecutionResult
  • Loading branch information
Vacxe authored and tagantroy committed Jan 11, 2019
1 parent e4df4d3 commit f245de1
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
26 changes: 21 additions & 5 deletions core/src/main/kotlin/com/malinskiy/marathon/Marathon.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.malinskiy.marathon

import com.google.gson.Gson
import com.malinskiy.marathon.analytics.AnalyticsFactory
import com.malinskiy.marathon.analytics.tracker.local.RawTestResultTracker
import com.malinskiy.marathon.usageanalytics.TrackActionType
import com.malinskiy.marathon.usageanalytics.UsageAnalytics
import com.malinskiy.marathon.usageanalytics.tracker.Event
Expand All @@ -24,6 +25,7 @@ import com.malinskiy.marathon.test.Test
import com.malinskiy.marathon.test.toTestName
import com.malinskiy.marathon.vendor.VendorConfiguration
import kotlinx.coroutines.runBlocking
import java.lang.StringBuilder
import java.util.ServiceLoader
import java.util.concurrent.TimeUnit
import kotlin.coroutines.coroutineContext
Expand Down Expand Up @@ -110,11 +112,7 @@ class Marathon(val configuration: Configuration) {
summaryPrinter.print(summary)
}

val hours = TimeUnit.MILLISECONDS.toHours(timeMillis)
val minutes = TimeUnit.MILLISECONDS.toMinutes(timeMillis) % 60
val seconds = TimeUnit.MILLISECONDS.toSeconds(timeMillis) % 60

log.info { "Total time: ${hours}H ${minutes}m ${seconds}s" }
printCliReport(analyticsFactory.rawTestResultTracker.testResults, timeMillis)
analytics.terminate()
analytics.close()
deviceProvider.terminate()
Expand All @@ -141,4 +139,22 @@ class Marathon(val configuration: Configuration) {
trackEvent(Event(TrackActionType.FlakinessStrategy, configuration.flakinessStrategy.javaClass.name))
}
}

private fun printCliReport(rawTestResult: List<RawTestResultTracker.RawTestRun>, executionTime: Long){
val cliReportBuilder = StringBuilder().appendln("Marathon run finished:")

rawTestResult.run {
val passedTests = count { it.success }
val failedTests = count { !it.success }
val ignoredTests = count { it.ignored }
cliReportBuilder.appendln("With $passedTests passed, $failedTests failed, $ignoredTests ignored tests")
}

val hours = TimeUnit.MILLISECONDS.toHours(executionTime)
val minutes = TimeUnit.MILLISECONDS.toMinutes(executionTime) % 60
val seconds = TimeUnit.MILLISECONDS.toSeconds(executionTime) % 60
cliReportBuilder.appendln("Total time: ${hours}H ${minutes}m ${seconds}s" )

log.info { cliReportBuilder.toString() }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ class TimelineSummarySerializer(private val rawTestResultTracker: RawTestResultT

val passedTestCount = rawTestResultTracker.testResults.count { it.success }
val failedTests = rawTestResultTracker.testResults.count { !it.success }
val ignoredTests = rawTestResultTracker.testResults.count { it.ignored }

val measures = rawTestResultTracker.testResults.groupBy { it.deviceSerial }
.map {
Expand All @@ -101,6 +102,6 @@ class TimelineSummarySerializer(private val rawTestResultTracker: RawTestResultT
val executionStats = aggregateExecutionStats(measures)
logger.debug { executionStats }

return ExecutionResult(passedTestCount, failedTests, executionStats, measures)
return ExecutionResult(passedTestCount, failedTests, ignoredTests, executionStats, measures)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ package com.malinskiy.marathon.report.debug.timeline

data class ExecutionResult(val passedTests: Int,
val failedTests: Int,
val ignoredTests: Int,
val executionStats: ExecutionStats,
val measures: List<Measure>)

0 comments on commit f245de1

Please sign in to comment.