From 64469e59c4f1e8f4691214b89e1f19c73a0311d3 Mon Sep 17 00:00:00 2001 From: Nik Vanderhoof Date: Sun, 26 May 2019 20:04:32 -0400 Subject: Scoverage multiple source folders (#615) * Add test the replicates issue #613 * Fixes issue #613 --- .../hello-world-sbt/core/src/main/java/Baz.java | 2 ++ .../hello-world-sbt/core/src/main/scala/Foo.scala | 1 + .../hello-world-sbt/core/src/test/FooTest.scala | 5 ++++ .../hello-world/core/test/src/GreetSpec.scala | 9 ++++++ contrib/scoverage/test/src/HelloWorldTests.scala | 34 ++++++++++++++++++++++ .../1.3.1/src/ScoverageReportWorkerImpl.scala | 3 +- 6 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 contrib/scoverage/test/resources/hello-world-sbt/core/src/main/java/Baz.java create mode 100644 contrib/scoverage/test/resources/hello-world-sbt/core/src/main/scala/Foo.scala create mode 100644 contrib/scoverage/test/resources/hello-world-sbt/core/src/test/FooTest.scala create mode 100644 contrib/scoverage/test/resources/hello-world/core/test/src/GreetSpec.scala diff --git a/contrib/scoverage/test/resources/hello-world-sbt/core/src/main/java/Baz.java b/contrib/scoverage/test/resources/hello-world-sbt/core/src/main/java/Baz.java new file mode 100644 index 00000000..2bc0deb1 --- /dev/null +++ b/contrib/scoverage/test/resources/hello-world-sbt/core/src/main/java/Baz.java @@ -0,0 +1,2 @@ +public class Baz { +} diff --git a/contrib/scoverage/test/resources/hello-world-sbt/core/src/main/scala/Foo.scala b/contrib/scoverage/test/resources/hello-world-sbt/core/src/main/scala/Foo.scala new file mode 100644 index 00000000..d3c853cc --- /dev/null +++ b/contrib/scoverage/test/resources/hello-world-sbt/core/src/main/scala/Foo.scala @@ -0,0 +1 @@ +object Foo diff --git a/contrib/scoverage/test/resources/hello-world-sbt/core/src/test/FooTest.scala b/contrib/scoverage/test/resources/hello-world-sbt/core/src/test/FooTest.scala new file mode 100644 index 00000000..c1f4acaf --- /dev/null +++ b/contrib/scoverage/test/resources/hello-world-sbt/core/src/test/FooTest.scala @@ -0,0 +1,5 @@ +import org.scalatest._ + +class FooTest extends WordSpec { + "Foo" should "Baz" in { assert(true) } +} diff --git a/contrib/scoverage/test/resources/hello-world/core/test/src/GreetSpec.scala b/contrib/scoverage/test/resources/hello-world/core/test/src/GreetSpec.scala new file mode 100644 index 00000000..ae5562f1 --- /dev/null +++ b/contrib/scoverage/test/resources/hello-world/core/test/src/GreetSpec.scala @@ -0,0 +1,9 @@ +import org.scalatest._ + +class GreetSpec extends WordSpec with Matchers { + "Greet" should { + "work" in { + Greet.greet("Nik", None) shouldBe("Hello, Nik!") + } + } +} diff --git a/contrib/scoverage/test/src/HelloWorldTests.scala b/contrib/scoverage/test/src/HelloWorldTests.scala index 98a4201c..6d5c3032 100644 --- a/contrib/scoverage/test/src/HelloWorldTests.scala +++ b/contrib/scoverage/test/src/HelloWorldTests.scala @@ -9,6 +9,7 @@ import utest.framework.TestPath object HelloWorldTests extends utest.TestSuite { val resourcePath = os.pwd / 'contrib / 'scoverage / 'test / 'resources / "hello-world" + val sbtResourcePath = os.pwd / 'contrib / 'scoverage / 'test / 'resources / "hello-world-sbt" trait HelloBase extends TestUtil.BaseModule { def millSourcePath = TestUtil.getSrcPathBase() / millOuterCtx.enclosing.split('.') } @@ -25,6 +26,25 @@ object HelloWorldTests extends utest.TestSuite { } } + object HelloWorldSbt extends HelloBase { outer => + object core extends ScoverageModule { + def scalaVersion = "2.12.4" + def scoverageVersion = "1.3.1" + override def sources = T.sources( + millSourcePath / 'src / 'main / 'scala, + millSourcePath / 'src / 'main / 'java + ) + override def resources = T.sources{ millSourcePath / 'src / 'main / 'resources } + + object test extends ScoverageTests { + override def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.5") + def testFrameworks = Seq("org.scalatest.tools.Framework") + override def millSourcePath = outer.millSourcePath + override def intellijModulePath = outer.millSourcePath / 'src / 'test + } + } + } + def workspaceTest[T](m: TestUtil.BaseModule, resourcePath: os.Path = resourcePath) (t: TestEvaluator => T) (implicit tp: TestPath): T = { @@ -74,6 +94,11 @@ object HelloWorldTests extends utest.TestSuite { evalCount > 0 ) } + "htmlReport" - workspaceTest(HelloWorld) { eval => + val Right((_, _)) = eval.apply(HelloWorld.core.test.compile) + val Right((result, evalCount)) = eval.apply(HelloWorld.core.scoverage.htmlReport) + assert(evalCount > 0) + } } "test" - { "upstreamAssemblyClasspath" - workspaceTest(HelloWorld) { eval => @@ -103,5 +128,14 @@ object HelloWorldTests extends utest.TestSuite { } } } + "HelloWorldSbt" - { + "scoverage" - { + "htmlReport" - workspaceTest(HelloWorldSbt, sbtResourcePath) { eval => + val Right((_, _)) = eval.apply(HelloWorldSbt.core.test.compile) + val Right((result, evalCount)) = eval.apply(HelloWorldSbt.core.scoverage.htmlReport) + assert(evalCount > 0) + } + } + } } } diff --git a/contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala b/contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala index 44f506f7..b869ea90 100644 --- a/contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala +++ b/contrib/scoverage/worker/1.3.1/src/ScoverageReportWorkerImpl.scala @@ -11,8 +11,7 @@ class ScoverageReportWorkerImpl extends ScoverageReportWorkerApi { val coverageFileObj = coverageFile(dataDir) val coverage = deserialize(coverageFileObj) coverage(invoked(findMeasurementFiles(dataDir))) - val Seq(PathRef(sourceFolderPath, _, _)) = sources - val sourceFolders = Seq(sourceFolderPath.toIO) + val sourceFolders = sources.map(_.path.toIO) val htmlFolder = new java.io.File(s"${selfDir}/htmlReport") htmlFolder.mkdir() new ScoverageHtmlWriter(sourceFolders, htmlFolder, None) -- cgit v1.2.3