blob: 2f35e84301723906b790b4753e871d8c9aa3efac [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
plugins {
// Findbugs has been removed as of Gradle 6. Spotbugs is an alternative, if anyone wants to enable it.
// id 'com.github.spotbugs'
id 'jacoco'
}
// JaCoCo configuration
def jacocoOff = {
it.configure {
jacoco {
enabled = false
}
}
}
def jacocoOn = {
it.configure {
jacoco {
enabled = true
}
}
}
// Default is off
project.tasks.withType(Test).each(jacocoOff)
project.tasks.whenTaskAdded() {
if (it instanceof Test) {
it.configure(jacocoOff)
}
}
if (project.hasProperty("codeCoverage")) {
// Enable if provided
project.tasks.withType(Test).each(jacocoOn)
project.tasks.whenTaskAdded() {
if (it instanceof Test) {
it.configure(jacocoOn)
}
}
tasks.register('mergeIntegrationTestCoverage', JacocoMerge) {
description 'Merges Distributed and Integration test coverage results'
destinationFile = file("${buildDir}/jacoco/mergedIntegrationTestCoverage.exec")
executionData = fileTree(dir: 'build/jacoco', include: [
'**/distributedTest.exec',
'**/integrationTest.exec'
])
}
tasks.register('jacocoIntegrationTestReport', JacocoReport) {
reports {
csv.enabled false
sourceSets project.sourceSets.main
html.outputLocation = project.file("${buildDir}/reports/jacoco/integrationTest")
executionData fileTree(dir: 'build/jacoco', include: '**/integrationTest.exec')
}
}
tasks.register('jacocoDistributedTestReport', JacocoReport) {
reports {
csv.enabled false
sourceSets project.sourceSets.main
html.outputLocation = project.file("${buildDir}/reports/jacoco/distributedTest")
executionData fileTree(dir: 'build/jacoco', include: '**/distributedTest.exec')
}
}
tasks.register('jacocoOverallTestReport', JacocoReport) {
reports {
csv.enabled false
sourceSets project.sourceSets.main
html.outputLocation = project.file("${buildDir}/reports/jacoco/all")
executionData fileTree(dir: 'build/jacoco', include: '**/*.exec')
}
}
}