A plugin to enable the use of Scoverage in a gradle Scala project.
http://plugins.gradle.org/plugin/org.scoverage
This creates an additional task testScoverage
which will run tests against instrumented code.
A further task reportScoverage
produces XML and HTML reports for analysing test code coverage.
You need to configure the version of Scoverage that will be used. This plugin should be compatible with all 1+ versions.
dependencies {
scoverage 'org.scoverage:scalac-scoverage-plugin_2.11:1.1.0', 'org.scoverage:scalac-scoverage-runtime_2.11:1.1.0'
}
Then launch command :
gradle reportScoverage
or gradle checkScoverage
- testScoverage - Executes all tests and creates Scoverage XML report with information about code coverage
- reportScoverage - Generates reports (see below).
- aggregateScoverage - Aggregates reports from multiple sub-projects (see below).
- checkScoverage - See below.
- compileScoverageScala - Instruments code without running tests.
You can configure output generated by gradle reportScoverage
using flags:
Flag name | Default value | Description |
---|---|---|
coverageOutputCobertura | true | Enables/disables cobertura.xml file generation. |
coverageOutputXML | true | Enables/disables scoverage XML output. |
coverageOutputHTML | true | Enables/disables scoverage HTML output. |
coverageDebug | false | Enables/disables scoverage debug output. |
There is now experimental support for aggregating coverage statistics across sub-projects.
The project hosting the aggregation task must be configured as the sub-projects are; i.e. with the scoverage plugin applied and the scoverage dependencies configured.
You also have to declare this task:
task aggregateScoverage(type: org.scoverage.ScoverageAggregate)
This will produce a report into build/scoverage-aggregate
directory.
Aggregation uses same flags as reporting for enabling/disabling different output types.
For checking coverage of the aggregated result, configure the checkScoverage task:
checkScoverage {
reportDir = file("$buildDir/scoverage-aggregate")
}
By default, when you launch gradle checkScoverage
build fail if only 75% of statements in project is covered by tests.
To configure it as you want, add this configuration :
checkScoverage {
minimumRate = 0.5
}
You can also modify type of value to check from Statement
s to Line
s or Branch
es:
checkScoverage {
coverageType = 'Line'
minimumRate = 0.5
}
checkScoverage {
coverageType = 'Branch'
minimumRate = 0.5
}