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 Statements to Lines or Branches:
checkScoverage {
coverageType = 'Line'
minimumRate = 0.5
}
checkScoverage {
coverageType = 'Branch'
minimumRate = 0.5
}
