
org.scoverage.ScoverageReport.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-scoverage Show documentation
Show all versions of gradle-scoverage Show documentation
gradle-scoverage is a Gradle plugin for calculating code coverage using Scoverage
The newest version!
package org.scoverage
import org.gradle.api.DefaultTask
import org.gradle.api.file.FileCollection
import org.gradle.api.provider.Property
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputDirectory
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.Nested
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.TaskAction
import scoverage.reporter.CoverageAggregator
import static org.gradle.api.tasks.PathSensitivity.RELATIVE
@CacheableTask
class ScoverageReport extends DefaultTask {
@Nested
ScoverageRunner runner
@InputDirectory
@PathSensitive(RELATIVE)
final Property dataDir = project.objects.property(File)
@InputFiles
@PathSensitive(RELATIVE)
final Property sources = project.objects.property(FileCollection)
@OutputDirectory
final Property reportDir = project.objects.property(File)
@Input
final Property sourceEncoding = project.objects.property(String)
@Input
final Property coverageOutputCobertura = project.objects.property(Boolean)
@Input
final Property coverageOutputXML = project.objects.property(Boolean)
@Input
final Property coverageOutputHTML = project.objects.property(Boolean)
@Input
final Property coverageDebug = project.objects.property(Boolean)
@TaskAction
def report() {
runner.run {
reportDir.get().delete()
reportDir.get().mkdirs()
def sourceRoot = getProject().getRootDir()
def coverage = CoverageAggregator.aggregate([dataDir.get()] as File[], sourceRoot)
if (coverage.isEmpty()) {
project.logger.info("[scoverage] Could not find coverage file, skipping...")
} else {
new ScoverageWriter(project.logger).write(
sources.get().getFiles(),
reportDir.get(),
coverage.get(),
sourceEncoding.get(),
coverageOutputCobertura.get(),
coverageOutputXML.get(),
coverageOutputHTML.get(),
coverageDebug.get())
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy