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

Commit f99cbd3

Browse files
authored
Merge pull request #9 from codacy/improve/emptyReport
Improve error message for empty report files
2 parents b7d489c + 3051d76 commit f99cbd3

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

src/main/scala/com/codacy/parsers/CoverageParser.scala

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package com.codacy.parsers
22

3-
import java.io.File
4-
53
import com.codacy.api.{CoverageReport, Language}
6-
import com.codacy.parsers.implementation.{JacocoParser, CoberturaParser}
4+
import com.codacy.parsers.implementation.{CoberturaParser, JacocoParser}
75
import com.codacy.parsers.util.XML
8-
6+
import java.io.File
97
import scala.util.Try
108
import scala.xml.Elem
119

@@ -30,12 +28,21 @@ trait XMLCoverageParser extends CoverageParser {
3028
object CoverageParserFactory {
3129

3230
def withCoverageReport[A](language: Language.Value, rootProject: File, reportFile: File)(block: CoverageReport => A): Either[String, A] = {
33-
create(language, rootProject, reportFile).map {
34-
parser =>
35-
val report = parser.generateReport()
36-
Right(block(report))
37-
}.getOrElse {
38-
Left(s"no parser for $language")
31+
val isEmptyReport = {
32+
// just starting by detecting the simplest case: a single report file
33+
Try(reportFile.isFile && reportFile.length() == 0).getOrElse(false)
34+
}
35+
36+
if (isEmptyReport) {
37+
Left(s"report file is empty: ${reportFile.getAbsolutePath}")
38+
} else {
39+
create(language, rootProject, reportFile).map {
40+
parser =>
41+
val report = parser.generateReport()
42+
Right(block(report))
43+
}.getOrElse {
44+
Left(s"no parser for $language")
45+
}
3946
}
4047
}
4148

0 commit comments

Comments
 (0)