1

При попытке выполнить интеграционные тесты я столкнулся с проблемой, когда JVM будет висеть, используя 100% CPU. Тест, который поставляется с новым приложением Play, работает правильно, но как только он требует взаимодействия с базой данных, он будет вешать бесконечно. Для всех других модульных тестов все работает плавно, подключаясь к базе данных mysql на localhost. Я хотел бы иметь возможность использовать эту настройку с моими интеграционными тестами.Играйте! Тесты интеграции выполняются с использованием 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

Вопрос в моем случае был версией селена. Добавление этой строки в appDependencies в Build.scala модернизирует селеном:

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

Оттуда я был в состоянии использовать как HtmlUnit и FireFox для веб-драйверов без каких-либо проблем.

0

Вы пробовали настройки порта, такие как 3333, то с помощью Localhost?

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

Это не URL-адрес или порт. Если я делаю 'browser.goTo ("/test ")' где/test выводит простой вид, который не нуждается в базе данных, все работает нормально. В противном случае он зависает. –

0

Вы решили это? У меня такая же проблема, она также зависает с простым маршрутом (FakeRequest), если есть какое-либо соединение db.

Я решил эту проблему путем установки (Build.scala): .settings (parallelExecution в тесте: = ложь)

Он помог мне с FakeRequest, но селен тесты до сих пор висят.

Смежные вопросы