1

当试图运行集成测试时,我遇到了一个莫名其妙的问题,JVM将挂起,使用100%的CPU。新的Play应用程序附带的测试正常工作,但只要需要数据库交互,它就会无限期地挂起。对于所有其他的单元测试,一切都可以平滑地连接到localhost上的mysql数据库。我希望能够在集成测试中使用相同的设置。玩!集成测试挂起使用WithBrowser

下面是测试browser.goTo(“/”)

import org.specs2.mutable._ 

import play.api.test._ 
import play.api.test.Helpers._ 

class TestSpec extends Specification { 

    "Application" should { 

    "work from within a browser" in new WithBrowser(webDriver = HTMLUNIT, app = FakeApplication()) { 

     browser.goTo("/") 

     println(browser.pageSource) 

     browser.$("#email").text("[email protected]") 
     browser.$("#password").text("password") 
     browser.$("#loginbutton").click() 
     browser.pageSource must not contain("Sign in") 
     browser.pageSource must contain("Logout") 

    } 

    } 

} 

回答

4

我的情况是硒版本。在Build.scala加入这行来appDependencies将升级硒:

"org.seleniumhq.selenium" % "selenium-java" % "2.35.0" % "test"

从那里,我可以同时使用和的HtmlUnit为FIREFOX卷筒纸驱动器没有任何问题。

0

你试过设置端口,如3333,然后用你的本地主机,将在调用时挂起的例子吗?

browser.goTo("http://localhost:3333/") 
+0

这不是网址或端口。如果我执行'browser.goTo(“/ test”)'/ test输出一个不需要数据库的简单视图,一切正常。否则,它挂起。 –

0

你解决了这个问题吗?我有同样的问题,如果有任何数据库连接,它也挂起简单的路由(FakeRequest)。

我解决了这个设置(Build.scala): .settings(parallelExecution在测试:= FALSE)

它帮助我与FakeRequest,但Selenium测试仍挂起。