From b10b0ae401fc91549a8466138c4ea00866ea441a Mon Sep 17 00:00:00 2001 From: Lukasz Stefaniak Date: Tue, 29 Mar 2016 20:04:22 +0200 Subject: [PATCH] sbt-test to verify that scala.js is supported by scoverage --- src/sbt-test/scoverage/scalajs/build.sbt | 12 ++++++++++++ .../scoverage/scalajs/project/plugins.sbt | 15 +++++++++++++++ .../sjstest/js/src/test/scala/JsTest.scala | 10 ++++++++++ .../sjstest/jvm/src/test/scala/JvmTest.scala | 10 ++++++++++ .../sjstest/shared/src/main/scala/UnderTest.scala | 8 ++++++++ .../shared/src/test/scala/SharedTest.scala | 9 +++++++++ src/sbt-test/scoverage/scalajs/test | 11 +++++++++++ 7 files changed, 75 insertions(+) create mode 100644 src/sbt-test/scoverage/scalajs/build.sbt create mode 100644 src/sbt-test/scoverage/scalajs/project/plugins.sbt create mode 100644 src/sbt-test/scoverage/scalajs/sjstest/js/src/test/scala/JsTest.scala create mode 100644 src/sbt-test/scoverage/scalajs/sjstest/jvm/src/test/scala/JvmTest.scala create mode 100644 src/sbt-test/scoverage/scalajs/sjstest/shared/src/main/scala/UnderTest.scala create mode 100644 src/sbt-test/scoverage/scalajs/sjstest/shared/src/test/scala/SharedTest.scala create mode 100644 src/sbt-test/scoverage/scalajs/test diff --git a/src/sbt-test/scoverage/scalajs/build.sbt b/src/sbt-test/scoverage/scalajs/build.sbt new file mode 100644 index 00000000..5c1bc16f --- /dev/null +++ b/src/sbt-test/scoverage/scalajs/build.sbt @@ -0,0 +1,12 @@ +lazy val root = (project in file(".")).aggregate(crossJS, crossJVM) + +lazy val cross = crossProject.in(file("sjstest")).settings( + scalaVersion := "2.11.7", + libraryDependencies ++= Seq( + "org.scalatest" %%% "scalatest" % "3.0.0-M15" % "test" + ) + ) + + +lazy val crossJS = cross.js +lazy val crossJVM = cross.jvm diff --git a/src/sbt-test/scoverage/scalajs/project/plugins.sbt b/src/sbt-test/scoverage/scalajs/project/plugins.sbt new file mode 100644 index 00000000..5bbd441d --- /dev/null +++ b/src/sbt-test/scoverage/scalajs/project/plugins.sbt @@ -0,0 +1,15 @@ +// The Typesafe repository +resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/" + +//scoverage needs this +resolvers += Classpaths.sbtPluginReleases + +{ + val pluginVersion = System.getProperty("plugin.version") + if(pluginVersion == null) + throw new RuntimeException("""|The system property 'plugin.version' is not defined. + |Specify this property using the scriptedLaunchOpts -D.""".stripMargin) + else addSbtPlugin("org.scoverage" %% "sbt-scoverage" % pluginVersion) +} + +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.8") diff --git a/src/sbt-test/scoverage/scalajs/sjstest/js/src/test/scala/JsTest.scala b/src/sbt-test/scoverage/scalajs/sjstest/js/src/test/scala/JsTest.scala new file mode 100644 index 00000000..133c1a36 --- /dev/null +++ b/src/sbt-test/scoverage/scalajs/sjstest/js/src/test/scala/JsTest.scala @@ -0,0 +1,10 @@ +import org.scalatest.{FlatSpec, Matchers} + +class JsTest extends FlatSpec with Matchers { + + "JS UnderTest" should "work on JS" in { + UnderTest.jsMethod shouldBe "js" + } + +} + diff --git a/src/sbt-test/scoverage/scalajs/sjstest/jvm/src/test/scala/JvmTest.scala b/src/sbt-test/scoverage/scalajs/sjstest/jvm/src/test/scala/JvmTest.scala new file mode 100644 index 00000000..80739a94 --- /dev/null +++ b/src/sbt-test/scoverage/scalajs/sjstest/jvm/src/test/scala/JvmTest.scala @@ -0,0 +1,10 @@ +import org.scalatest.{FlatSpec, Matchers} + +class JvmTest extends FlatSpec with Matchers { + + "JVM UnderTest" should "work on JVM" in { + UnderTest.jvmMethod shouldBe "jvm" + } + +} + diff --git a/src/sbt-test/scoverage/scalajs/sjstest/shared/src/main/scala/UnderTest.scala b/src/sbt-test/scoverage/scalajs/sjstest/shared/src/main/scala/UnderTest.scala new file mode 100644 index 00000000..66a31844 --- /dev/null +++ b/src/sbt-test/scoverage/scalajs/sjstest/shared/src/main/scala/UnderTest.scala @@ -0,0 +1,8 @@ + +object UnderTest { + def onJsAndJvm: String = "js and jvm" + + def jsMethod: String = "js" + + def jvmMethod: String = "jvm" +} diff --git a/src/sbt-test/scoverage/scalajs/sjstest/shared/src/test/scala/SharedTest.scala b/src/sbt-test/scoverage/scalajs/sjstest/shared/src/test/scala/SharedTest.scala new file mode 100644 index 00000000..fecebac8 --- /dev/null +++ b/src/sbt-test/scoverage/scalajs/sjstest/shared/src/test/scala/SharedTest.scala @@ -0,0 +1,9 @@ +import org.scalatest.{FlatSpec, Matchers} + +class SharedTest extends FlatSpec with Matchers { + + "Shared UnderTest" should "return where it works" in { + UnderTest.onJsAndJvm shouldBe "js and jvm" + } + +} diff --git a/src/sbt-test/scoverage/scalajs/test b/src/sbt-test/scoverage/scalajs/test new file mode 100644 index 00000000..03e4b557 --- /dev/null +++ b/src/sbt-test/scoverage/scalajs/test @@ -0,0 +1,11 @@ +# run scoverage using the coverage task +> clean +> coverage +> test +# There should be scoverage-data directory +$ exists sjstest/js/target/scala-2.11/scoverage-data +$ exists sjstest/jvm/target/scala-2.11/scoverage-data +> coverageReport +# There should be scoverage-report directory +$ exists sjstest/js/target/scala-2.11/scoverage-report +$ exists sjstest/jvm/target/scala-2.11/scoverage-report