Codecov Gradle Example

  1. Add Jacoco Plugin to your build.gradle. See here
  2. Set Jacoco to export xml. See here
  3. Execute your tests as normal
  4. Call gradle jacocoTestReport to generate report. See here
  5. Call bash <(curl -s https://codecov.io/bash) to upload reports to Codecov. See here
  • Public project? Using TravisCI, CircleCI or AppVeyor? You're all set! No upload token required.
  • Otherwise please include your repository upload token. See here

Frequently Asked Questions

❔ Do you support Multi-module projects?

Update your parent (root) build.gradle:

allprojects {
    apply plugin: 'java'
    apply plugin: 'maven'
    apply plugin: 'jacoco'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    repositories {
        mavenLocal()
        mavenCentral()
        jcenter()

        maven { url "http://repo1.maven.org/maven2/" }
    }
}

subprojects {
    dependencies {
        ...        
    }

    test.useTestNG()
}

task codeCoverageReport(type: JacocoReport) {
    executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")

    subprojects.each {
        sourceSets it.sourceSets.main
    }

    reports {
        xml.enabled true
        xml.destination "${buildDir}/reports/jacoco/report.xml"
        html.enabled false
        csv.enabled false
    }
}

codeCoverageReport.dependsOn {
    subprojects*.test
}

Update your .travis.yml file:

language: java
jdk:
  - oraclejdk8
before_script:
  - chmod +x gradlew
script:
  - ./gradlew check
  - ./gradlew codeCoverageReport
after_success:
  - bash <(curl -s https://codecov.io/bash)

No need to have anything else report-related in child modules

Credits for multi-module

We are happy to help if you have any questions. Please contact email our Support at support@codecov.io