2015-05-29 28 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

相关问题