From 0a7d68737e89ab9471c7177ecfdf706e06a7cad8 Mon Sep 17 00:00:00 2001 From: Nik Vanderhoof Date: Thu, 4 Jul 2019 02:56:56 -0400 Subject: Scoverage buildinfo support (#647) * Add test case for scoverage/buildinfo * Take generatedSources from outer + pass allSources to scoverage reports --- build.sc | 6 ++++++ contrib/scoverage/src/ScoverageModule.scala | 6 ++++-- contrib/scoverage/test/resources/hello-world/core/src/Greet.scala | 2 ++ contrib/scoverage/test/src/HelloWorldTests.scala | 7 ++++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/build.sc b/build.sc index 5a08960b..ce02aa95 100755 --- a/build.sc +++ b/build.sc @@ -310,6 +310,12 @@ object contrib extends MillModule { (for ((k, v) <- mapping) yield s"-D$k=$v") } + // So we can test with buildinfo in the classpath + val test = new Tests(implicitly) + class Tests(ctx0: mill.define.Ctx) extends super.Tests(ctx0) { + override def moduleDeps = super.moduleDeps :+ contrib.buildinfo + } + object api extends MillApiModule { def moduleDeps = Seq(scalalib) } diff --git a/contrib/scoverage/src/ScoverageModule.scala b/contrib/scoverage/src/ScoverageModule.scala index d34b5615..734c317f 100644 --- a/contrib/scoverage/src/ScoverageModule.scala +++ b/contrib/scoverage/src/ScoverageModule.scala @@ -87,6 +87,8 @@ trait ScoverageModule extends ScalaModule { outer: ScalaModule => def selfDir = T { T.ctx().dest / os.up / os.up } def dataDir = T { selfDir() / "data" } + def generatedSources = outer.generatedSources() + def allSources = outer.allSources() def moduleDeps = outer.moduleDeps def sources = outer.sources def resources = outer.resources @@ -102,13 +104,13 @@ trait ScoverageModule extends ScalaModule { outer: ScalaModule => ScoverageReportWorkerApi .scoverageReportWorker() .bridge(toolsClasspath().map(_.path)) - .htmlReport(sources(), dataDir().toString, selfDir().toString) + .htmlReport(allSources(), dataDir().toString, selfDir().toString) } def xmlReport() = T.command { ScoverageReportWorkerApi .scoverageReportWorker() .bridge(toolsClasspath().map(_.path)) - .xmlReport(sources(), dataDir().toString, selfDir().toString) + .xmlReport(allSources(), dataDir().toString, selfDir().toString) } } diff --git a/contrib/scoverage/test/resources/hello-world/core/src/Greet.scala b/contrib/scoverage/test/resources/hello-world/core/src/Greet.scala index 90830bbc..0c9a6980 100644 --- a/contrib/scoverage/test/resources/hello-world/core/src/Greet.scala +++ b/contrib/scoverage/test/resources/hello-world/core/src/Greet.scala @@ -5,4 +5,6 @@ object Greet { } val foo = Foo // testing module deps + + val scoverageVersionUsed = BuildInfo.scoverageVersion } diff --git a/contrib/scoverage/test/src/HelloWorldTests.scala b/contrib/scoverage/test/src/HelloWorldTests.scala index 3d5a5114..66f7a50e 100644 --- a/contrib/scoverage/test/src/HelloWorldTests.scala +++ b/contrib/scoverage/test/src/HelloWorldTests.scala @@ -2,6 +2,7 @@ package mill.contrib.scoverage import mill._ import mill.api.Result +import mill.contrib.BuildInfo import mill.scalalib._ import mill.util.{TestEvaluator, TestUtil} import utest._ @@ -19,12 +20,16 @@ object HelloWorldTests extends utest.TestSuite { def scalaVersion = "2.12.4" } - object core extends ScoverageModule { + object core extends ScoverageModule with BuildInfo { def scalaVersion = "2.12.4" def scoverageVersion = "1.3.1" def moduleDeps = Seq(other) + def buildInfoMembers = T { + Map("scoverageVersion" -> scoverageVersion()) + } + object test extends ScoverageTests { override def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.5") def testFrameworks = Seq("org.scalatest.tools.Framework") -- cgit v1.2.3