diff options
author | Nik Vanderhoof <nikolasrvanderhoof@gmail.com> | 2019-05-18 23:22:13 -0400 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2019-05-19 11:22:13 +0800 |
commit | c4a65baab92890d2d5682329a87469bec605fe5d (patch) | |
tree | 1d8caffb159d847e7cafa211572204164b3eabc2 /build.sc | |
parent | 6c86609a6474e952e3d4972852f032af944631dc (diff) | |
download | mill-c4a65baab92890d2d5682329a87469bec605fe5d.tar.gz mill-c4a65baab92890d2d5682329a87469bec605fe5d.tar.bz2 mill-c4a65baab92890d2d5682329a87469bec605fe5d.zip |
Add support for Scoverage (#571)
* Add initial work for ScoverageModule
* style: Move package scoverage from lib to contrib
Suggested by @lefou
> I think, it would be better to add under `mill.contrib.scoverage`.
Pull request: #571
* Initial changes to non-hardcoded scoverage version
* Using task context api to specify dataDir
Now measurement data will be written to:
PROJECT_ROOT/out/MODULE/scoverage/data/
and the html report will be written to:
PROJECT_ROOT/out/MODULE/scoverage/data/htmlReport/
* Remove wild card imports in scoverage
Also remove scoverage dependency from build.sc
* Move htmlReport into worker
Based on what I've seen in
scalalib, scalajslib, scalanativelib, playlib, and twirllib modules.
Still need to add tests
* Add basic docs + tests for scoverage
I still am working on testing the actual generation of
reports.
* Use cross-module for scoverage worker
Now we can support multiple versions of scoverage
by adding them to the crossmodule list.
Also now running the local publish script succeeds.
* Add scoverage to ci tests
* Add detailed ScoverageModule documentation
* Test scoverage dataDir
* Remove <pre> tags in scaladoc
* Add scoverage dependency in less hacky way
* Modify scoverage tests to check classpaths
* Put docs in alphabetical order
* Test classpaths for scoverage runtime
* Remove abstract def test: ScoverageTests
* Construct classloader differently
* Revert "Construct classloader differently"
This reverts commit fccf9a94cc38fb9e2be58a9ff90b00b65f339db6.
* Revert "Construct classloader differently"
Also fixes unfound error in html report
This reverts commit fccf9a94cc38fb9e2be58a9ff90b00b65f339db6.
* Fix classpath for scoverage worker
Diffstat (limited to 'build.sc')
-rwxr-xr-x | build.sc | 27 |
1 files changed, 26 insertions, 1 deletions
@@ -287,6 +287,31 @@ object contrib extends MillModule { def moduleDeps = Seq(scalalib) } + object scoverage extends MillModule { + def moduleDeps = Seq(scalalib, scoverage.api) + + def testArgs = T { + val mapping = Map( + "MILL_SCOVERAGE_REPORT_WORKER_1_3_1" -> worker("1.3.1").compile().classes.path + ) + scalalib.worker.testArgs() ++ + scalalib.backgroundwrapper.testArgs() ++ + (for ((k, v) <- mapping) yield s"-D$k=$v") + } + + object api extends MillApiModule { + def moduleDeps = Seq(scalalib) + } + + object worker extends Cross[WorkerModule]("1.3.1") + + class WorkerModule(scoverageVersion: String) extends MillApiModule { + def moduleDeps = Seq(scoverage.api) + + def ivyDeps = Agg(ivy"org.scoverage::scalac-scoverage-plugin:${scoverageVersion}") + } + } + object buildinfo extends MillModule { def moduleDeps = Seq(scalalib) // why do I need this? @@ -436,7 +461,7 @@ def launcherScript(shellJvmArgs: Seq[String], } object dev extends MillModule{ - def moduleDeps = Seq(scalalib, scalajslib, scalanativelib, contrib.scalapblib, contrib.tut) + def moduleDeps = Seq(scalalib, scalajslib, scalanativelib, contrib.scalapblib, contrib.tut, contrib.scoverage) def forkArgs = ( |