Skip to content

Commit 1df0dc2

Browse files
david-allisonmikehardy
authored andcommitted
build(ci): improve unit test summary
* Fix markdown issues with multiple suites * Combine the individual tables * All durations are minutes and seconds (zero-padded) Assisted-by: Claude Opus 4.6
1 parent 9624d34 commit 1df0dc2

1 file changed

Lines changed: 24 additions & 17 deletions

File tree

build.gradle.kts

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -183,35 +183,42 @@ val gradleTestMaxParallelForks by extra(
183183

184184
private fun String?.parseIntOrDefault(defaultValue: Int): Int = this?.toIntOrNull() ?: defaultValue
185185

186+
var loggedTestSuiteCount = 0
187+
186188
private fun logTestResultsToGitHubActions(desc: TestDescriptor, result: TestResult) {
187189
if (!ciBuild) return
188190

189-
val elapsed = (result.endTime - result.startTime).milliseconds
191+
val header = if (loggedTestSuiteCount == 0) {
192+
"""
193+
|## Test Results
194+
|
195+
|| Suite | Result | Duration | Tests | Passed | Failed | Skipped |
196+
|| ----- | ------ | -------- | ----- | ------ | ------ | ------- |
197+
|
198+
""".trimMargin()
199+
} else {
200+
""
201+
}
202+
loggedTestSuiteCount++
203+
204+
val summaryPath = System.getenv("GITHUB_STEP_SUMMARY") ?: return
190205

206+
val duration = (result.endTime - result.startTime).milliseconds
207+
val seconds = (duration.inWholeMilliseconds % 60000) / 1000.0
208+
// both digits are zero-padded: 01m 05.220s
209+
val elapsed = "%02dm %06.3fs".format(duration.inWholeMinutes, seconds)
191210
val tests = result.testCount
192211
val passed = result.successfulTestCount
193212
val failed = result.failedTestCount
194213
val skipped = result.skippedTestCount
195214

196-
// Gradle Test Run :AnkiDroid:testPlayDebugUnitTest returned SUCCESS in 5m 30s
197-
val markdownSummary = """
198-
|${desc.displayName} returned **${result.resultType}** in $elapsed
199-
|| Tests | Passed | Failed | Skipped |
200-
||-------|--------|--------|---------|
201-
|| $tests| $passed| $failed| $skipped|
202-
|----
203-
""".trimMargin()
215+
// Gradle Test Run :common:testDebugUnitTest | SUCCESS | ...
216+
val row = "| ${desc.displayName} | **${result.resultType}** | $elapsed | $tests | $passed | $failed | $skipped |\n"
204217

205-
appendToGitHubActionsSummary(markdownSummary)
206-
}
207-
208-
private fun appendToGitHubActionsSummary(message: String) {
209-
if (!ciBuild) return
210-
val summaryPath = System.getenv("GITHUB_STEP_SUMMARY") ?: return
211218
Files.writeString(
212219
Paths.get(summaryPath),
213-
message,
220+
header + row,
214221
StandardOpenOption.CREATE,
215-
StandardOpenOption.APPEND
222+
StandardOpenOption.APPEND,
216223
)
217224
}

0 commit comments

Comments
 (0)