Re-add HTML and XML code coverage reports

This commit is contained in:
Gary Tierney
2018-09-04 01:16:12 +01:00
parent 2ea0f68eb9
commit 4525eed734
3 changed files with 66 additions and 30 deletions
+11
View File
@@ -21,3 +21,14 @@ apply from: 'gradle/properties.gradle'
apply from: 'gradle/code-quality.gradle' apply from: 'gradle/code-quality.gradle'
apply from: 'gradle/testing.gradle' apply from: 'gradle/testing.gradle'
apply from: 'gradle/wrapper.gradle' apply from: 'gradle/wrapper.gradle'
gradle.projectsEvaluated {
task check {
def deps = []
deps += getTasksByName("check", true).findAll { it.project != rootProject }
deps += detektCheck
deps += jacocoReport
dependsOn(deps)
}
}
+8 -16
View File
@@ -1,32 +1,24 @@
def detektAggregateReport = "$rootDir/reports/detekt-report.xml" def detektAggregateReport = "$rootDir/reports/detekt-report.xml"
gradle.projectsEvaluated { detekt {
detekt {
version = detektVersion version = detektVersion
defaultProfile { profile("main") {
input = rootProject.projectDir.absolutePath
filters = ".*/resources/.*, .*/build/.*"
output = file("$buildDir/reports") output = file("$buildDir/reports")
outputName = "detekt-report" outputName = "detekt-report"
config = file("$rootDir/gradle/config/detekt.yml") config = file("$rootDir/gradle/config/detekt.yml")
parallel = true parallel = true
} }
}
subprojects.findAll { it.pluginManager.hasPlugin('kotlin') }.forEach { proj -> dependencies {
profile(proj.name) {
input = proj.sourceSets.main.kotlin
}
}
}
dependencies {
detekt group: 'io.gitlab.arturbosch.detekt', name: 'detekt-formatting', version: detektVersion detekt group: 'io.gitlab.arturbosch.detekt', name: 'detekt-formatting', version: detektVersion
} }
sonarqube { sonarqube {
properties { properties {
property "sonar.kotlin.detekt.reportPaths", detektAggregateReport property "sonar.kotlin.detekt.reportPaths", detektAggregateReport
} }
}
tasks["sonarqube"].dependsOn(detektCheck)
} }
+37 -4
View File
@@ -5,7 +5,6 @@ def jacocoCoverageAggregate = "$buildDir/jacoco/jacocoTestAll.exec"
def testedProjects() { def testedProjects() {
subprojects.findAll { subproject -> subproject.plugins.hasPlugin('java') || subproject.plugins.hasPlugin('kotlin') } subprojects.findAll { subproject -> subproject.plugins.hasPlugin('java') || subproject.plugins.hasPlugin('kotlin') }
} }
gradle.projectsEvaluated { gradle.projectsEvaluated {
configure(testedProjects()) { configure(testedProjects()) {
apply plugin: "jacoco" apply plugin: "jacoco"
@@ -31,6 +30,43 @@ gradle.projectsEvaluated {
task jacocoMerge(type: JacocoMerge) { task jacocoMerge(type: JacocoMerge) {
destinationFile = file(jacocoCoverageAggregate) destinationFile = file(jacocoCoverageAggregate)
executionData = project.fileTree(dir: '.', include: '**/build/jacoco/jacocoTest.exec') executionData = project.fileTree(dir: '.', include: '**/build/jacoco/jacocoTest.exec')
dependsOn(getTasksByName('test', true))
}
task jacocoReport(type: JacocoReport) {
sourceDirectories = files()
classDirectories = files()
executionData = files()
reports {
html.enabled = true
xml.enabled = true
csv.enabled = false
}
// Work-around to allow us to build list of executionData files in doFirst
onlyIf = {
true
}
/*
* Builds list of source dirs, class dirs, and executionData files
* when task is run, not at script evaluation time
*/
doFirst {
subprojects.findAll { subproject ->
subproject.pluginManager.hasPlugin('java') || subproject.pluginManager.hasPlugin('kotlin')
}.each { subproject ->
additionalSourceDirs files((Set<File>) subproject.sourceSets.main.allSource.srcDirs)
additionalClassDirs((FileCollection) subproject.sourceSets.main.output)
}
executionData = files(jacocoCoverageAggregate)
}
dependsOn(jacocoMerge)
} }
sonarqube { sonarqube {
@@ -42,7 +78,4 @@ gradle.projectsEvaluated {
property "sonar.jacoco.reportPaths", jacocoCoverageAggregate property "sonar.jacoco.reportPaths", jacocoCoverageAggregate
} }
} }
tasks["sonarqube"].dependsOn(jacocoMerge)
} }