summaryrefslogtreecommitdiff
path: root/contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala')
-rw-r--r--contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala27
1 files changed, 22 insertions, 5 deletions
diff --git a/contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala b/contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala
index b869ea90..63fdd693 100644
--- a/contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala
+++ b/contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala
@@ -5,16 +5,33 @@ import mill.eval.PathRef
import _root_.scoverage.Serializer.{ coverageFile, deserialize }
import _root_.scoverage.IOUtils.{ findMeasurementFiles, invoked }
import _root_.scoverage.report.ScoverageHtmlWriter
+import _root_.scoverage.report.ScoverageXmlWriter
+
+private sealed trait ReportType { def folderName: String }
+private case object Html extends ReportType { val folderName: String = "htmlReport" }
+private case object Xml extends ReportType { val folderName: String = "xmlReport" }
class ScoverageReportWorkerImpl extends ScoverageReportWorkerApi {
- def htmlReport(sources: Seq[PathRef], dataDir: String, selfDir: String) = {
+ private def buildReport(sources: Seq[PathRef], dataDir: String, selfDir: String, reportType: ReportType) = {
val coverageFileObj = coverageFile(dataDir)
val coverage = deserialize(coverageFileObj)
coverage(invoked(findMeasurementFiles(dataDir)))
val sourceFolders = sources.map(_.path.toIO)
- val htmlFolder = new java.io.File(s"${selfDir}/htmlReport")
- htmlFolder.mkdir()
- new ScoverageHtmlWriter(sourceFolders, htmlFolder, None)
- .write(coverage)
+ val folder = new java.io.File(s"${selfDir}/${reportType.folderName}")
+ folder.mkdir()
+ reportType match {
+ case Html =>
+ new ScoverageHtmlWriter(sourceFolders, folder, None)
+ .write(coverage)
+ case Xml =>
+ new ScoverageXmlWriter(sourceFolders, folder, false)
+ .write(coverage)
+ }
+ }
+ def htmlReport(sources: Seq[PathRef], dataDir: String, selfDir: String) = {
+ buildReport(sources, dataDir, selfDir, Html)
+ }
+ def xmlReport(sources: Seq[PathRef], dataDir: String, selfDir: String) = {
+ buildReport(sources, dataDir, selfDir, Xml)
}
}