aboutsummaryrefslogtreecommitdiffstats
path: root/app/build.gradle
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2015-07-17 07:54:28 -0700
committerKenny Root <kenny@the-b.org>2015-07-17 07:54:28 -0700
commit6fafb9f3783af116a283a5fd950864a1cdcc1910 (patch)
treecb85c0c313c0179741526cc69c2af9e6b08a2925 /app/build.gradle
parentc0bc4123ebcfb91cfc12b3567ee5a45c4708ef57 (diff)
downloadconnectbot-6fafb9f3783af116a283a5fd950864a1cdcc1910.tar.gz
connectbot-6fafb9f3783af116a283a5fd950864a1cdcc1910.tar.bz2
connectbot-6fafb9f3783af116a283a5fd950864a1cdcc1910.zip
Get code coverage for JUnit+Robolectric instead
Diffstat (limited to 'app/build.gradle')
-rw-r--r--app/build.gradle42
1 files changed, 41 insertions, 1 deletions
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'