aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--app/build.gradle42
2 files changed, 42 insertions, 2 deletions
diff --git a/.travis.yml b/.travis.yml
index cb7a7aa..77d19fc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -36,6 +36,6 @@ android:
license:
- '.+'
-script: ./gradlew build check createDebugCoverageReport
+script: ./gradlew build check jacocoTestDebugReport
after_success: ./gradlew coveralls
diff --git a/app/build.gradle b/app/build.gradle
index 4fe9432..aade9af 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -66,7 +66,47 @@ android {
}
}
-coveralls.jacocoReportPath = 'build/reports/coverage/debug/report.xml'
+apply plugin: 'jacoco'
+
+// By default, Android Gradle plugin uses JaCoCo version 0.7.1, which works great in JUnit on the JVM.
+// But that will fail on Android Lollipop/ART runtime, which requires 0.7.3 or higher.
+if (rootProject.hasProperty('jacocoVersion')) {
+ android.jacoco.version = rootProject.property('jacocoVersion')
+ jacoco.toolVersion = rootProject.property('jacocoVersion')
+} else {
+ println "Using the default JaCoCo version of: ${jacoco.toolVersion}"
+}
+
+// The built-in jacoco plugin automatically applies itself to all Test tasks
+tasks.withType(Test).whenTaskAdded {
+ it.jacoco.append = false
+ it.jacoco.classDumpFile = file("${project.buildDir}/jacoco/dump")
+}
+
+// These tasks are for generating the coverage report after JUnit+robolectric tests have executed
+tasks.create(name: "jacocoTestDebugReport", type: JacocoReport, dependsOn: "testDebug") {
+ group = "Reporting"
+ description = "Generate Jacoco coverage reports"
+
+ classDirectories = fileTree(
+ dir: "${project.buildDir}/intermediates/classes/debug/",
+ excludes: ['**/R.class',
+ '**/R$*.class',
+ '**/*$ViewInjector*.*',
+ '**/BuildConfig.*',
+ '**/Manifest*.*']
+ )
+
+ sourceDirectories = files("src/main/java", "src/debug/java")
+ executionData = files("${project.buildDir}/jacoco/testDebug.exec")
+
+ reports {
+ xml.enabled = true
+ html.enabled = true
+ }
+}
+
+coveralls.jacocoReportPath = 'app/build/reports/jacoco/jacocoTestDebugReport/jacocoTestDebugReport.xml'
dependencies {
testCompile 'junit:junit:4.12'