2016-09-02 25 views
0

我有隻測試內的SBT會議,在特定的測試失敗使用問題e.g行爲VS推出SBT

sbt 
> test-only package.Test 

,其中作爲運行作爲單個命令工作正常。例如

sbt 'test-only package.Test' 

我想知道爲什麼行爲會有所不同?

我仍在研究一個我希望分享的最小范例。

更新:這似乎與Akka actor系統的實例化有關。錯誤正在下降到。

interface akka.actor.Scheduler is not assignable from class akka.actor.LightArrayRevolverScheduler 

回答

1

因此,這被歸結爲演員系統的錯誤使用。

狡猾的代碼歸結爲這樣的事情作爲一個模擬withing測試

class FooSpec extends UnitSpec { 
... 
    val controller = new FooController { 
     override lazy val actorSystem = ActorSystem("test") 
    } 
... 
} 

正確的方式做到這一點是使用阿卡 - testkit

class FooSpec extends TestKit(ActorSystem("test")) with UnitSpec { 
... 
    val controller = new FooController { 
     override lazy val actorSystem = system 
    } 
... 
} 

現在事情的作品每次不管我如何啓發sbt。