2015-05-29 27 views
-1

我有一堆JUnit測試並希望執行它們。測試訪問我的Play應用程序主機:端口以調用REST API。如何在開始播放應用程序後運行junit

我用下面的命令來運行測試:

./activator -Dhttp.port=8090 -Dhttps.port=8091 test 

我也試過這樣:

D:\sigma-idp\auth>activator -Dhttp.port=8090 -Dhttps.port=8091 
[info] Loading project definition from D:\sigma-idp\auth\project 
[info] Set current project to auth (in build file:/D:/sigma-idp/auth/) 
[auth] $ test 

但這裏的問題是,應用程序還沒有開始,JUnit測試的嘗試連接到Play應用以訪問我的Rest API。我不知道爲什麼測試沒有啓動應用程序。

如何在JUnit測試開始之前啓動我的遊戲應用程序?

現在我只能在使用Eclipse啓動應用程序時才能執行測試。

請建議!

回答

0

看一看文檔: https://www.playframework.com/documentation/2.3.x/JavaFunctionalTest 你必須明確地推出自己的網絡服務器實例來進行測試:

@Test 
public void testInServer() { 
running(testServer(3333), new Runnable() { 
    public void run() { 
     assertThat(
      WS.url("http://localhost:3333").get().get(timeout).getStatus() 
     ).isEqualTo(OK); 
    } 
}); 

}

你應該考慮直接測試控制器(如推薦文檔)。

+0

我在做java。從文件沒有得到清除我應該如何遵循。另外,我的其他電話需要訪問嵌入式數據庫,並且數據庫僅在啓動應用程序時啓動。我不知道我怎麼能僞造這一切。 – Sohan

+0

啊我明白了。我編輯了我的答案。我希望這有幫助。 – Peanut

+0

正如我告訴我需要訪問我的嵌入式數據庫,並啓動只有當播放應用程序啓動。我有我的所有樣本測試數據加載在嵌入式數據庫。 你還可以提供一些上面的例子的細節代碼,因爲我認爲我不能使用,因爲它需要重建周圍的東西,我不知道是什麼? – Sohan

相關問題