Skip to content

Commit 4c6d3be

Browse files
committed
Merge pull request #24 from MichaelZinsmaier/PR_AddingTotalStatementCoverage
Added total statements metric to avoid overlaps with coremetrics
2 parents 4688fc6 + 80e787b commit 4c6d3be

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

plugin/src/main/scala/com/buransky/plugins/scoverage/measure/ScalaMetrics.scala

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@ import scala.collection.mutable.ListBuffer
3030
* @author Rado Buransky
3131
*/
3232
class ScalaMetrics extends Metrics {
33-
override def getMetrics = ListBuffer(ScalaMetrics.statementCoverage, ScalaMetrics.coveredStatements).toList
33+
override def getMetrics = ListBuffer(ScalaMetrics.statementCoverage, ScalaMetrics.coveredStatements, ScalaMetrics.totalStatements).toList
3434
}
3535

3636
object ScalaMetrics {
3737
private val STATEMENT_COVERAGE_KEY = "scoverage"
3838
private val COVERED_STATEMENTS_KEY = "covered_statements"
39+
private val TOTAL_STATEMENTS_KEY = "total_statements"
3940

4041
lazy val statementCoverage = new Metric.Builder(STATEMENT_COVERAGE_KEY,
4142
"Statement coverage", ValueType.PERCENT)
@@ -54,4 +55,12 @@ object ScalaMetrics {
5455
.setQualitative(false)
5556
.setDomain(CoreMetrics.DOMAIN_SIZE)
5657
.create[java.lang.Integer]()
58+
59+
lazy val totalStatements = new Metric.Builder(TOTAL_STATEMENTS_KEY,
60+
"Total statements", Metric.ValueType.INT)
61+
.setDescription("Number of all statements covered by tests and uncovered")
62+
.setDirection(Metric.DIRECTION_BETTER)
63+
.setQualitative(false)
64+
.setDomain(CoreMetrics.DOMAIN_SIZE)
65+
.create[java.lang.Integer]()
5766
}

plugin/src/main/scala/com/buransky/plugins/scoverage/sensor/ScoverageSensor.scala

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ class ScoverageSensor(settings: Settings, pathResolver: PathResolver, fileSystem
128128

129129
private def analyseStatementCountForModule(module: Project, context: SensorContext): Long = {
130130
// Aggregate modules
131-
context.getMeasure(module, CoreMetrics.STATEMENTS) match {
131+
context.getMeasure(module, ScalaMetrics.totalStatements) match {
132132
case null =>
133133
log.debug(LogUtil.f("Module has no number of statements. [" + module.name + "]"))
134134
0
@@ -206,8 +206,7 @@ class ScoverageSensor(settings: Settings, pathResolver: PathResolver, fileSystem
206206

207207
private def saveMeasures(context: SensorContext, resource: Resource, statementCoverage: StatementCoverage) {
208208
context.saveMeasure(resource, createStatementCoverage(statementCoverage.rate))
209-
if (context.getMeasure(CoreMetrics.STATEMENTS) == null)
210-
context.saveMeasure(resource, createStatementCount(statementCoverage.statementCount))
209+
context.saveMeasure(resource, createStatementCount(statementCoverage.statementCount))
211210
context.saveMeasure(resource, createCoveredStatementCount(statementCoverage.coveredStatementsCount))
212211

213212
log.debug(LogUtil.f("Save measures [" + statementCoverage.rate + ", " + statementCoverage.statementCount +
@@ -221,7 +220,7 @@ class ScoverageSensor(settings: Settings, pathResolver: PathResolver, fileSystem
221220

222221
// Set line hits
223222
val coverage = CoverageMeasuresBuilder.create()
224-
coveredLines.foreach { coveredLine =>
223+
coveredLines.foreach { coveredLine =>
225224
coverage.setHits(coveredLine.line, coveredLine.hitCount)
226225
}
227226

@@ -246,7 +245,7 @@ class ScoverageSensor(settings: Settings, pathResolver: PathResolver, fileSystem
246245
new Measure[T](ScalaMetrics.statementCoverage, rate)
247246

248247
private def createStatementCount[T <: Serializable](statements: Int): Measure[T] =
249-
new Measure(CoreMetrics.STATEMENTS, statements.toDouble, 0)
248+
new Measure(ScalaMetrics.totalStatements, statements.toDouble, 0)
250249

251250
private def createCoveredStatementCount[T <: Serializable](coveredStatements: Int): Measure[T] =
252251
new Measure(ScalaMetrics.coveredStatements, coveredStatements.toDouble, 0)

0 commit comments

Comments
 (0)