aboutsummaryrefslogtreecommitdiffstats
path: root/config/jacoco.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'config/jacoco.gradle')
-rw-r--r--config/jacoco.gradle41
1 files changed, 41 insertions, 0 deletions
diff --git a/config/jacoco.gradle b/config/jacoco.gradle
new file mode 100644
index 0000000..c603349
--- /dev/null
+++ b/config/jacoco.gradle
@@ -0,0 +1,41 @@
+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 = "${project.buildDir}/reports/jacoco/jacocoTestDebugReport/jacocoTestDebugReport.xml" \ No newline at end of file