From 68c8135341c77ef545327a820590c3e920784fbd Mon Sep 17 00:00:00 2001 From: Nils Homer Date: Tue, 28 May 2019 04:10:51 -0700 Subject: Scoverage can output an XML report (#618) * use the _.scoverage.xmlReport task --- .../1.3.1/src/ScoverageReportWorkerImpl.scala | 27 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'contrib/scoverage/worker') 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) } } -- cgit v1.2.3