/* * Kiwix Android * Copyright (c) 2019 Kiwix * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ apply plugin: 'jacoco' jacoco { toolVersion = "0.8.12" } tasks.withType(Test).configureEach { jacoco.includeNoLocationClasses = true } tasks.register('jacocoInstrumentationTestReport', JacocoReport) { dependsOn = ['createDebugCoverageReport'] group "Reporting" description "Generate Jacoco coverage reports." reports { xml.required.set(true) html.required.set(true) html.outputLocation.set(file("${rootProject.buildDir}/coverage-report")) } def javaClasses = [] def kotlinClasses = [] def javaSrc = [] def kotlinSrc = [] def execution = [] def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*'] rootProject.subprojects.each { proj -> javaClasses << fileTree(dir: "$proj.buildDir/intermediates/javac/debug", excludes: fileFilter) kotlinClasses << fileTree(dir: "$proj.buildDir/tmp/kotlin-classes/debug", excludes: fileFilter) javaSrc << "$proj.projectDir/src/main/java" kotlinSrc << "$proj.projectDir/src/main/kotlin" execution << fileTree(dir: proj.buildDir, includes: ['jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec', 'outputs/code_coverage/debugAndroidTest/connected/**/*.ec']) } sourceDirectories.from = files(javaSrc, kotlinSrc) classDirectories.from = files(javaClasses, kotlinClasses) print execution executionData.from = files(execution) doLast() { print "file://${reports.html.outputLocation.get()}/index.html" } }