我想编写一个使用 Akka 演员并从 sbt 运行的 ScalaTest 测试套件。当我尝试这样做时:
class Tests extends FunSuite with BeforeAndAfterAll {
override protected def beforeAll() {
class Actor1 extends Actor {
protected def receive = {
case 1 => println("One")
}
}
val sys = ActorSystem("my")
val a = sys.actorOf(Props[Actor1], "plain_actor")
a ! 1
sys.shutdown()
}
}
然后sbt test
,我得到
[ERROR] [01/22/2012 12:49:50.329] [default-dispatcher10] [akka://my/user/plain_actor] error while creating actor
但是,当我在通常的主类而不是 FunSuite 中编写相同的代码并运行它时sbt run
,一切正常。这两种情况有什么区别?如何让 Akka 演员在测试套件中正确运行?