Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 28 additions & 10 deletions buildSrc/src/main/groovy/TestSummaryListener.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,34 @@ import org.gradle.api.tasks.testing.TestResult

class TestSummaryListener implements TestListener, Serializable {

private final List<String> failedTests = Collections.synchronizedList(new ArrayList<>())

@Override
void beforeSuite(TestDescriptor suite) {}

@Override
void afterSuite(TestDescriptor desc, TestResult result) {
if (desc.parent == null) {
def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} passed, ${result.failedTestCount} failed, ${result.skippedTestCount} skipped)"
def startItem = '| '
def endItem = ' |'
def repeatLength = startItem.length() + output.length() + endItem.length()

println '\n' +
('-' * repeatLength) + '\n' +
startItem + output + endItem + '\n' +
('-' * repeatLength)
if (desc.parent != null) {
return
}

def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} passed, ${result.failedTestCount} failed, ${result.skippedTestCount} skipped)"
def startItem = '| '
def endItem = ' |'
def repeatLength = startItem.length() + output.length() + endItem.length()

println '\n' +
('-' * repeatLength) + '\n' +
startItem + output + endItem + '\n' +
('-' * repeatLength)

def failures = new ArrayList<>(failedTests).sort()

if (!failures.empty) {
println '\nFailed tests:'
failures.each { failure ->
println " - ${failure}"
}
}
}

Expand All @@ -27,6 +40,11 @@ class TestSummaryListener implements TestListener, Serializable {

@Override
void afterTest(TestDescriptor desc, TestResult result) {
if (result.resultType == TestResult.ResultType.FAILURE) {
def className = desc.className ?: desc.parent?.name ?: '<unknown>'
failedTests.add("${className} > ${desc.name}")
}

println "${desc.className} > ${desc.name} took: ${(result.endTime - result.startTime)}ms"
}
}
Loading