Играть ! 2.2.4 / Akka: тесты не пройдены при запуске вместе, но все в порядке отдельно

У меня есть контроллер, которыйaskактер перед ответом и два контрольных случая:

Когда я бегуplay test второй тест не пройденКогда я бегуplay testOnly ApplicationSpec а такжеplay testOnly IntegrationSpecоба преуспеют

Я думаю, что система Akka закрывается первым тестом и не запускается снова вторым тестом, но почему? И как я могу обойти это?

Контроллер:

object Application extends Controller {
  implicit val _ = Timeout(3 seconds)
  val gamesManagerRef = Akka.system().actorOf(GamesManager.props)

  def index = Authenticated.async { implicit request =>
    (gamesManagerRef ? GamesManager.ListWaitingGames).map {
      case GamesManager.MultipleOperationOk(games) =>
        Ok(views.html.index(GameInformation.getWaitings(request.jedis)))
    }
  }
}

Модульный тест:

class ApplicationSpec extends Specification {

  "Application" should {

    "send 404 on a bad request" in new WithApplication{
      route(FakeRequest(GET, "/boum")) must beNone
    }

    "render the index page" in new WithApplication{
      val home = route(FakeRequest(GET, "/")).get

      status(home) must equalTo(OK)
      contentType(home) must beSome.which(_ == "text/html")
      contentAsString(home) must contain ("jumbotron")
    }
  }
}

Интеграционный тест:

class IntegrationSpec extends Specification {
  "Application" should {
    "work from within a browser" in new WithBrowser {
      browser.goTo("http://localhost:" + port)
      browser.pageSource must contain("jumbotron")
    }
  }
}

Тесты очень похожи на стандартные, когда генерируютсяplay new

Содержимое предоставляется при выполнении обоих:

play.api.Application$anon$1: Execution exception[[AskTimeoutException: Recipient[Actor[akka://application/user/$a#1274766555]] had already been terminated.]]
    at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10.jar:2.2.1]
    at play.api.test.FakeApplication.handleError(Fakes.scala:203) ~[play-test_2.10.jar:2.2.1]
    at play.core.server.netty.PlayDefaultUpstreamHandler$anonfun$12$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:165) ~[play_2.10.jar:2.2.1]
    at play.core.server.netty.PlayDefaultUpstreamHandler$anonfun$12$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:162) ~[play_2.10.jar:2.2.1]
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) ~[scala-library.jar:na]
    at scala.util.Failure$anonfun$recover$1.apply(Try.scala:185) ~[scala-library.jar:na]
Caused by: akka.pattern.AskTimeoutException: Recipient[Actor[akka://application/user/$a#1274766555]] had already been terminated.
    at akka.pattern.AskableActorRef$.ask$extension(AskSupport.scala:134) ~[akka-actor_2.10.jar:2.2.0]
    at akka.pattern.AskableActorRef$.$qmark$extension(AskSupport.scala:146) ~[akka-actor_2.10.jar:2.2.0]
    at controllers.Application$anonfun$index$1.apply(Application.scala:24) ~[classes/:na]
    at controllers.Application$anonfun$index$1.apply(Application.scala:23) ~[classes/:na]
    at controllers.Application$Authenticated$anonfun$invokeBlock$3.apply(Application.scala:74) ~[classes/:na]
    at controllers.Application$Authenticated$anonfun$invokeBlock$3.apply(Application.scala:69) ~[classes/:na]

Что выдает страницу ошибки, сгенерированную Play! к тесту, который не содержит мой "JumboTron»

Я пытался создать новыйFakeApplication дать вWithBrowser конструктор, но бывает только пустая страница.

Полный исходный код доступен:https://github.com/Isammoc/yinyang/tree/8cf8ad625b7ef35423f17503a2a35fe390352d22

Ответы на вопрос(1)

Ваш ответ на вопрос