ScalaTest на sbt не запускает никаких тестов

Я пытаюсь запустить свои тесты с помощью: sbt, а затем test.

Мой build.sbt выглядит так

lazy val scalatest =  "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"
lazy val root = (project in file(".")).
settings(
    name := "highlight2pdf",
    version := "0.1",
    scalaVersion := "2.11.6",
    libraryDependencies +=  scalatest
)

И я просто поместил пример теста на тест/скала

    import collection.mutable.Stack
    import org.scalatest._

    class ExampleSpec extends FlatSpec with Matchers {

        "A Stack" should "pop values in last-in-first-out order" in {
            val stack = new Stack[Int]
            stack.push(1)
            stack.push(2)
            stack.pop() should be (2)
            stack.pop() should be (1)
        }

        it should "throw NoSuchElementException if an empty stack is popped" in {
            val emptyStack = new Stack[Int]
            a [NoSuchElementException] should be thrownBy {
                emptyStack.pop()
            } 
        }
    }

Тем не менее он всегда показывает:

[info] Тесты не проводились.

Любые мысли о том, почему это не работает?


person FabioCosta    schedule 30.04.2015    source источник


Ответы (1)


Структура каталогов не является правильным соглашением для sbt для поиска ExampleSpec.scala по умолчанию.

├── built.sbt
├── src
│   └── test
│       └── scala
│           ├── ExampleSpec.scala

Измените его на структуру выше и запустите sbt test в каталоге верхнего уровня, и он должен работать. Точно так же исходный код scala будет помещен в src/main/scala и будет скомпилирован.

> test
[info] Compiling 1 Scala source to /tmp/TestsWontRun/target/scala-2.11/test-classes...
[info] ExampleSpec:
[info] A Stack
[info] - should pop values in last-in-first-out order
[info] - should throw NoSuchElementException if an empty stack is popped
[info] Run completed in 289 milliseconds.
[info] Total number of tests run: 2
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 2, failed 0, canceled 0, ignored 0, pending 0
[info] All tests passed.
[success] Total time: 7 s, completed Apr 30, 2015 8:54:30 AM
person Brian    schedule 30.04.2015