2012-10-02 43 views
2

我在Play中写了一个验收测试! 2框架,我的测试是:运行验收测试播放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"); 
     } 

    }); 
} 

但是当我尝试使用指令播放测试我得到一个错误这个测试:

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) 

我做了什么错?

由于

回答

2

我通过端口3333的另一个应用程序,然后在测试开始再现该错误消息。

也许您之前运行过测试,但未正确关闭。

你可以找到它的PID与 netstat的-onap | grep的3333#我用它在Linux

输出示例: TCP6 0 0 ::: 3333 ::: * LISTEN 13173/JAVA AUS(0.00/0/0)

杀死进程: 杀-9 13173

+0

它现在是否正常工作,谢谢。 – elf

+0

这种端口工作方式,但有两个测试在第一次测试后锁定执行: – elf

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"); 
     } 

    }); 
} 

我不知道发生了什么...