2015-04-30 84 views
6

我想運行我的測試: sbt然後測試。ScalaTest on sbt沒有運行任何測試

我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() 
      } 
     } 
    } 

不過它總是顯示:

[信息]沒有測試被執行。

任何方式它不工作?

回答

7

默認情況下,目錄結構不是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