Skip to content
This repository was archived by the owner on Dec 3, 2020. It is now read-only.

Commit 3ef36d7

Browse files
authored
Merge pull request #14 from codacy/AddZeroLinesToCoverage
Add zero lines to coverage reports
2 parents 492bfdc + 0f696fe commit 3ef36d7

File tree

6 files changed

+14
-9
lines changed

6 files changed

+14
-9
lines changed

src/main/scala/com/codacy/parsers/implementation/CoberturaParser.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class CoberturaParser(val language: Language.Value, val rootProject: File, val c
7878
(line \ "@number").text.toInt -> (line \ "@hits").text.toInt
7979
}
8080
}.toMap.collect {
81-
case (key, value) if value > 0 =>
81+
case (key, value) =>
8282
key -> value
8383
}
8484

src/main/scala/com/codacy/parsers/implementation/JacocoParser.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import com.codacy.parsers.XMLCoverageParser
77

88
import scala.xml.Node
99

10+
private case class LineCoverage(missedInstructions: Int, coveredInstructions: Int)
11+
1012
class JacocoParser(val language: Language.Value, val rootProject: File, val coverageReport: File) extends XMLCoverageParser {
1113

1214
val rootProjectDir = rootProject.getAbsolutePath + File.separator
@@ -48,10 +50,11 @@ class JacocoParser(val language: Language.Value, val rootProject: File, val cove
4850

4951
val lineHitMap = (file \\ "line").map {
5052
line =>
51-
(line \ "@nr").text.toInt -> (line \ "@ci").text.toInt
53+
(line \ "@nr").text.toInt -> LineCoverage((line \ "@mi").text.toInt, (line \ "@ci").text.toInt)
5254
}.toMap.collect {
53-
case (key, value) if value > 0 =>
54-
key -> 1
55+
case (key, lineCoverage) if lineCoverage.missedInstructions+ lineCoverage.coveredInstructions > 0 =>
56+
57+
key -> (if(lineCoverage.coveredInstructions > 0) 1 else 0)
5558
}
5659

5760
CoverageFileReport(sourceFilename.stripPrefix(rootProjectDir), fileHit, lineHitMap)

src/test/resources/test_cobertura.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
<class line-rate="0.87" name="TestSourceFile" filename="src/test/resources/TestSourceFile.scala">
66
<methods/>
77
<lines>
8+
<line number="3" hits="0"/>
89
<line number="4" hits="1"/>
910
<line number="5" hits="1"/>
1011
<line number="6" hits="2"/>

src/test/resources/thousand_sep_cobertura.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
<class line-rate="0,87" name="TestSourceFile" filename="src/test/resources/TestSourceFile.scala">
1414
<methods/>
1515
<lines>
16-
<line number="9" hits="1"/>
16+
<line number="8" hits="1"/>
17+
<line number="9" hits="0"/>
1718
<line number="10" hits="1"/>
1819
</lines>
1920
</class>

src/test/scala/com/codacy/parsers/CoberturaParserTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class CoberturaParserTest extends WordSpec with BeforeAndAfterAll with Matchers
2727

2828
val testReport = CoverageReport(87, List(
2929
CoverageFileReport("src/test/resources/TestSourceFile.scala", 87,
30-
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 4 -> 1)),
30+
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 3 -> 0, 4 -> 1)),
3131
CoverageFileReport("src/test/resources/TestSourceFile2.scala", 87,
3232
Map(1 -> 1, 2 -> 1, 3 -> 1))))
3333

@@ -39,7 +39,7 @@ class CoberturaParserTest extends WordSpec with BeforeAndAfterAll with Matchers
3939

4040
val testReport = CoverageReport(87, List(
4141
CoverageFileReport("src/test/resources/TestSourceFile.scala", 87,
42-
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 4 -> 1)),
42+
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 9-> 0, 8 -> 1, 4 -> 1)),
4343
CoverageFileReport("src/test/resources/TestSourceFile2.scala", 87,
4444
Map(1 -> 1, 2 -> 1, 3 -> 1))))
4545

src/test/scala/com/codacy/parsers/JacocoParserTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ class JacocoParserTest extends WordSpec with BeforeAndAfterAll with Matchers {
2727

2828
val testReport = CoverageReport(73, List(
2929
CoverageFileReport("org/eluder/coverage/sample/InnerClassCoverage.java", 81,
30-
Map(10 -> 1, 6 -> 1, 9 -> 1, 13 -> 1, 22 -> 1, 12 -> 1, 3 -> 1, 16 -> 1, 19 -> 1)),
30+
Map(10 -> 1, 6 -> 1, 9 -> 1, 13 -> 1, 22 -> 1, 27 -> 0, 12 -> 1, 3 -> 1, 16 -> 1, 26 -> 0, 19 -> 1)),
3131
CoverageFileReport("org/eluder/coverage/sample/SimpleCoverage.java", 50,
32-
Map(3 -> 1, 6 -> 1))))
32+
Map(3 -> 1, 6 -> 1, 10 -> 0, 11 -> 0))))
3333

3434
reader.generateReport() shouldEqual testReport
3535
}

0 commit comments

Comments
 (0)