我在Play中写了一个验收测试! 2框架,我的测试是:
@Test
public void goToIndexPageAT() {
running(testServer(3333, fakeApplication(inMemoryDatabase())), HTMLUNIT, new Callback<TestBrowser>() {
public void invoke(TestBrowser browser) {
browser.goTo("http://localhost:3333/");
assertThat(browser.url()).isEqualTo("http://localhost:3333/activities");
assertThat(browser.$("#title").getTexts().get(0)).isEqualTo("FitTime");
}
});
}
但是当我尝试使用命令play test运行此测试时出现错误:
Test acceptenceTest.ApplicationTest.goToIndexPageAT failed: Server is not started!
[error] at scala.sys.package$.error(package.scala:27)
[error] at play.api.test.TestServer.stop(Selenium.scala:116)
[error] at play.test.Helpers.stop(Helpers.java:308)
[error] at play.test.Helpers.running(Helpers.java:338)
[error] at acceptenceTest.ApplicationTest.goToIndexPageAT(ApplicationTest.java:17)
我做错了什么?
由于
答案 0 :(得分:2)
我通过将端口3333用于另一个应用程序然后开始测试来重现此错误消息。
也许您之前已经完成了测试并且没有正确关闭。
你可以找到它的PID netstat -onap | grep 3333#我在Linux上使用它
示例输出: tcp6 0 0 ::: 3333 ::: * LISTEN 13173 / java aus(0.00 / 0/0)
杀死这个过程: 杀死-9 13173
答案 1 :(得分:0)
这里的测试:
@Test
public void goToIndexPageAT() {
running(testServer(3333, fakeApplication(inMemoryDatabase())), HTMLUNIT, new Callback<TestBrowser>() {
public void invoke(TestBrowser browser) {
browser.goTo("http://localhost:3333/");
assertThat(browser.url()).isEqualTo("http://localhost:3333/activities");
assertThat(browser.$("#title").getTexts().get(0)).isEqualTo("FitTime - Manage Your Exercises");
}
});
}
@Test
public void createNewActivityAT() {
running(testServer(3333, fakeApplication(inMemoryDatabase())), HTMLUNIT, new Callback<TestBrowser>() {
public void invoke(TestBrowser browser) {
browser.goTo("http://localhost:3333/");
browser.$("#name").text("bike");
browser.$("#time").text("10 KM");
}
});
}
我不知道发生了什么......