DEV Community

Cover image for How to generate an aggregated test report for all Gradle subprojects
Jakub Zalas
Jakub Zalas

Posted on • Edited on

4

How to generate an aggregated test report for all Gradle subprojects

Note: This article is outdated. The Test Report Aggregation Plugin can be used to achieve the same result with less effort.

With the plugin it all boils down to the example below.

With gradle:

plugins {
    id 'test-report-aggregation'
}

tasks.named('check') {
    dependsOn tasks.named('testAggregateTestReport', TestReport)
}
Enter fullscreen mode Exit fullscreen mode

With Kotlin:

plugins {
    id("test-report-aggregation")
}

tasks.check {
    dependsOn(tasks.named<TestReport>("testAggregateTestReport")) 
}
Enter fullscreen mode Exit fullscreen mode

Read more about the plugin in the official documentation: https://docs.gradle.org/current/userguide/test_report_aggregation_plugin.html


When using Gradle's multi-project builds, test reports are generated separately in each build directory of every sub-project.

To make my CI server's life easier I often like to aggregate reports in a single build directory:

// build.gradle.kts

plugins {
    base
    kotlin("jvm") version "1.3.72" apply false
}

allprojects {
    group = "com.kaffeinelabs"
    version = "1.0.0-SNAPSHOT"
}

val testReport = tasks.register<TestReport>("testReport") {
    destinationDir = file("$buildDir/reports/tests/test")
    reportOn(subprojects.mapNotNull {
        it.tasks.findByPath("test") 
    })

subprojects {
    tasks.withType<Test> {
        useJUnitPlatform()
        finalizedBy(testReport)
        testLogging {
            events("passed", "skipped", "failed")
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

If you're interested in how to aggregate code coverage reports, I covered it in another article:

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (1)

Collapse
 
velbur profile image
Velbur • Edited

Thank you. Great article! But looks like no reports if tests are failed...

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay