aboutsummaryrefslogtreecommitdiffstats
path: root/config/jacoco.gradle
blob: 25ac31189321c07184ca453fc0a99cb0c2ed3009 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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: "jacocoUnitTestDebugReport", type: JacocoReport, dependsOn: "testDebugUnitTest") {
	group = "Reporting"
	description = "Generate Jacoco coverage reports for unit tests"

	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/testDebugUnitTest.exec")

	reports {
		xml.enabled = true
		html.enabled = true
	}
}

coveralls.jacocoReportPath = "${project.buildDir}/reports/jacoco/jacocoUnitTestDebugReport/jacocoUnitTestDebugReport.xml"