Mercurial > public > develkit
diff metrics.gradle @ 132:8a7c3673dee9
CM-133: add fullCoverageReport task for consolidated coverage report
author | smith@nwoca.org |
---|---|
date | Thu, 06 Jun 2013 18:54:27 +0100 |
parents | ca34c067b178 |
children | 0d8681ff046b |
line wrap: on
line diff
--- a/metrics.gradle Wed Jun 05 22:45:58 2013 +0100 +++ b/metrics.gradle Thu Jun 06 18:54:27 2013 +0100 @@ -27,16 +27,57 @@ } } -//gradle.rootProject.afterEvaluate { project -> -// -// project.jacocoTestReport { -// -// -// } -// -//} +if (gradle.environment.coverage) { + + configurations { + jacocoAntRoot + } + dependencies { + jacocoAntRoot 'org.jacoco:org.jacoco.ant:0.6.2.201302030002' + } + + task fullCoverageReport << { + ant { + taskdef(name:'jacocoreport', classname: 'org.jacoco.ant.ReportTask', classpath: configurations.jacocoAntRoot.asPath) + + mkdir dir: "${buildDir.path}/reports/coverage" + + jacocoreport { + executiondata { + fileset(dir: "${buildDir.path}/coverage-results") { + include name: '*.jacoco.exec' + } + } + + structure(name: project.name) { + classfiles { + subprojects.each { project -> + fileset dir: project.sourceSets.main.output.classesDir + } + } + sourcefiles(encoding: 'CP1252') { + subprojects.each { project -> + project.sourceSets.main.allGroovy.srcDirs.findAll { file(it).exists() } each { + fileset dir: "$it" + } + } + } + } + xml destfile: "${buildDir.path}/reports/coverage/jacoco.xml" + html destdir: "${buildDir.path}/reports/coverage" + } + } + } + + fullCoverageReport.dependsOn { + subprojects.collect { project -> + project.copyCoverageData.path + } + } + +} subprojects { afterEvaluate { project -> @@ -73,6 +114,13 @@ dependsOn jacocoTestReport } + task copyCoverageData(dependsOn: test, type: Copy) { + from project.test.jacoco.destPath + into "${rootProject.buildDir.path}/coverage-results" + include 'test.exec' + rename 'test.exec', "${project.name}.jacoco.exec" + } + } sonarRunner {