Codecov Gradle Example
- Add Jacoco Plugin to your
build.gradle
. See here - Set Jacoco to export xml. See here
- Execute your tests as normal
- Call
gradle jacocoTestReport
to generate report. See here - 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
####❔ 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