Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot get uTest to see my tests

I'm trying to get uTest to work with ScalaJS and SBT. SBT is compiling the files, and uTest is running, but it simply ignores my tests. Try as I might I cannot find any difference between my code and the tutorial examples.

build.sbt:

enablePlugins(ScalaJSPlugin)
name := "Scala.js Stuff"
scalaVersion := "2.11.5" // or any other Scala version >= 2.10.2
scalaJSStage in Global := FastOptStage
libraryDependencies += "com.lihaoyi" %% "utest" % "0.3.0"
testFrameworks += new TestFramework("utest.runner.Framework")

src/test/scala/com/mysite/jovian/GeometryTest.scala:

package com.mysite.jovian
import utest._
object GeometryTest extends TestSuite {
  def tests = TestSuite { 
      'addPoints {
        val p: Point = new Point(3,4)
        val q: Point = new Point(4,3)
        val expected: Point = new Point(8,8)
        assert(p.plus(q).equals(expected))
        throw new Exception("foo") 
    }
    'fail {
        assert(1==2)
    }
  }
}

Output:

> reload
[info] Loading project definition from /Users/me/Dropbox (Personal)/mysite/flocks/project
[info] Set current project to Scala.js Stuff (in build file:/Users/me/Dropbox%20(Personal)/mysite/flocks/)
> test
[success] Total time: 1 s, completed Mar 6, 2015 7:01:41 AM
> test-only -- com.mysite.jovian.GeometryTest
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] No tests to run for test:testOnly
[success] Total time: 1 s, completed Mar 6, 2015 7:01:49 AM

If I introduce a syntax error, sbt test does see it:

> test
[info] Compiling 1 Scala source to /Users/me/Dropbox (Personal)/mysite/flocks/target/scala-2.11/test-classes...
[error] /Users/me/Dropbox (Personal)/mysite/flocks/src/test/scala/com/mysite/jovian/GeometryTest.scala:21: not found: value blablablablabla
[error]   blablablablabla
[error]   ^
[error] one error found
[error] (test:compile) Compilation failed
[error] Total time: 1 s, completed Mar 6, 2015 7:03:54 AM

So it's definitely seeing the code, it just doesn't seem to think that "tests" contains any tests.

Otherwise, in the non-test code, SBT+ScalaJS seems to be working fine...

Thanks for any help, I am mystified.

like image 418
Benjamin Rosenbaum Avatar asked Mar 06 '15 12:03

Benjamin Rosenbaum


1 Answers

Your mistake lies in the dependency on uTest:

libraryDependencies += "com.lihaoyi" %% "utest" % "0.3.0"

This is a JVM dependency. To use the Scala.js-enabled dependency, use %%% instead of %%, like this:

libraryDependencies += "com.lihaoyi" %%% "utest" % "0.3.0"

Additionally, you probably want this dependency only in the Test configuration, so add % "test" a the end:

libraryDependencies += "com.lihaoyi" %%% "utest" % "0.3.0" % "test"
like image 180
sjrd Avatar answered Nov 13 '22 11:11

sjrd