Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- apply plugin: 'jacoco'
- buildscript {
- repositories {
- jcenter()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:2.0.0-beta6'
- classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
- }
- }
- allprojects {
- repositories {
- jcenter()
- maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
- }
- }
- task clean(type: Delete) {
- delete rootProject.buildDir
- }
- subprojects { prj ->
- apply plugin: 'jacoco'
- jacoco {
- toolVersion '0.7.6.201602180812'
- }
- task jacocoReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') {
- group = 'Reporting'
- description = 'Generate Jacoco coverage reports after running tests.'
- reports {
- xml {
- enabled = true
- destination "${prj.buildDir}/reports/jacoco/jacoco.xml"
- }
- html {
- enabled = true
- destination "${prj.buildDir}/reports/jacoco"
- }
- }
- classDirectories = fileTree(
- dir: 'build/intermediates/classes/debug',
- excludes: [
- '**/R*.class',
- '**/BuildConfig*',
- '**/*$$*'
- ]
- )
- sourceDirectories = files('src/main/java')
- executionData = files('build/jacoco/testDebugUnitTest.exec')
- doFirst {
- files('build/intermediates/classes/debug').getFiles().each { file ->
- if (file.name.contains('$$')) {
- file.renameTo(file.path.replace('$$', '$'))
- }
- }
- }
- }
- }
- jacoco {
- toolVersion '0.7.6.201602180812'
- }
- task jacocoFullReport(type: JacocoReport, group: 'Coverage reports') {
- group = 'Reporting'
- description = 'Generates an aggregate report from all subprojects'
- //noinspection GrUnresolvedAccess
- dependsOn(subprojects.jacocoReport)
- additionalSourceDirs = project.files(subprojects.jacocoReport.sourceDirectories)
- sourceDirectories = project.files(subprojects.jacocoReport.sourceDirectories)
- classDirectories = project.files(subprojects.jacocoReport.classDirectories)
- executionData = project.files(subprojects.jacocoReport.executionData)
- reports {
- xml {
- enabled = true
- destination "${buildDir}/reports/jacoco/full/jacoco.xml"
- }
- html {
- enabled = true
- destination "${buildDir}/reports/jacoco/full"
- }
- }
- doFirst {
- //noinspection GroovyAssignabilityCheck
- executionData = files(executionData.findAll { it.exists() })
- }
- }
- buildscript {
- dependencies {
- classpath 'org.jacoco:org.jacoco.core:0.7.6.201602180812'
- }
- }
- task wrapper( type: Wrapper ) {
- gradleVersion = '2.13'
- }
- apply plugin: 'jacoco'
- android {
- testOptions {
- unitTests.all {
- jacoco {
- includeNoLocationClasses = true
- }
- }
- }
- }
- apply plugin: 'jacoco'
- jacoco {
- toolVersion = "0.7.6.201602180812"
- }
- android {
- testOptions {
- unitTests.all {
- jacoco {
- includeNoLocationClasses = true
- }
- }
- }
- }
- project.afterEvaluate {
- // Grab all build types and product flavors
- def buildTypes = android.buildTypes.collect { type -> type.name }
- def productFlavors = android.productFlavors.collect { flavor -> flavor.name }
- println(buildTypes)
- println(productFlavors)
- // When no product flavors defined, use empty
- if (!productFlavors) productFlavors.add('')
- productFlavors.each { productFlavorName ->
- buildTypes.each { buildTypeName ->
- def sourceName, sourcePath
- if (!productFlavorName) {
- sourceName = sourcePath = "${buildTypeName}"
- } else {
- sourceName = "${productFlavorName}${buildTypeName.capitalize()}"
- sourcePath = "${productFlavorName}/${buildTypeName}"
- }
- def testTaskName = "test${sourceName.capitalize()}UnitTest"
- println("SourceName:${sourceName}")
- println("SourcePath:${sourcePath}")
- println("testTaskName:${testTaskName}")
- // Create coverage task of form 'testFlavorTypeCoverage' depending on 'testFlavorTypeUnitTest'
- task "${testTaskName}Coverage" (type:JacocoReport, dependsOn: "$testTaskName") {
- group = "Reporting"
- description = "Generate Jacoco coverage reports on the ${sourceName.capitalize()} build."
- classDirectories = fileTree(
- dir: "${project.buildDir}/intermediates/classes/${sourcePath}",
- excludes: ['**/R.class',
- '**/R$*.class',
- '**/*$ViewInjector*.*',
- '**/*$ViewBinder*.*',
- '**/BuildConfig.*',
- '**/Manifest*.*']
- )
- def coverageSourceDirs = [
- "src/main/java",
- "src/$productFlavorName/java",
- "src/$buildTypeName/java"
- ]
- additionalSourceDirs = files(coverageSourceDirs)
- sourceDirectories = files(coverageSourceDirs)
- executionData = files("${project.buildDir}/jacoco/${testTaskName}.exec")
- println("${project.buildDir}/jacoco/${testTaskName}.exec")
- reports {
- xml.enabled = true
- html.enabled = true
- }
- }
- }
- }
- }
- apply plugin: 'jacoco'
- tasks.withType(Test) {
- jacoco.includeNoLocationClasses = true
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement