Playframework 2.0 如何调试服务器端的Play2单元测试

Playframework 2.0 如何调试服务器端的Play2单元测试,playframework-2.0,Playframework 2.0,我有一个这样的单元测试: @Test public void callRegisterByForm() { // AnyContentAsJson anyContentAsJson = null; running(fakeApplication(), new Runnable() { @Override public void run() { Map<String, String>

我有一个这样的单元测试:

    @Test
    public void callRegisterByForm() {
//  AnyContentAsJson anyContentAsJson = null;
    running(fakeApplication(), new Runnable() {
            @Override
            public void run() {
                Map<String, String> map = new HashMap<String, String>();
                map.put("phoneNumber", "+5103978860");
                map.put("countryCode", "us");

                Result result = routeAndCall(fakeRequest("POST", "/register").withFormUrlEncodedBody(map));
                assertThat(status(result)).isEqualTo(OK);
                assertThat(contentType(result)).isEqualTo("application/json");
                JsonNode jsonResult = Json.parse(contentAsString(result));
                assertThat(jsonResult.get(Config.DEV_REG_STATUS_PARAM).asText()).isEqualTo("OK");
                assertThat(jsonResult.get(Config.DEV_PHONE_NUMBER_PARAM).asText()).isEqualTo("+5103978860");
            }
        });

    }
@测试
public void callRegisterByForm(){
//AnyContentAsJson AnyContentAsJson=null;
正在运行(fakeApplication(),new Runnable()){
@凌驾
公开募捐{
Map Map=newhashmap();
地图输入(“电话号码”、“+5103978860”);
地图放置(“国家代码”、“美国”);
结果结果=routeAndCall(fakeRequest(“POST”和“/register”)。带有formurlencodedbody(map));
资产(状态(结果)).isEqualTo(正常);
assertThat(contentType(result)).isEqualTo(“应用程序/json”);
JsonNode jsonResult=Json.parse(contentAsString(result));
assertThat(jsonResult.get(Config.DEV_REG_STATUS_PARAM.astex()).isEqualTo(“OK”);
assertThat(jsonResult.get(Config.DEV_PHONE_NUMBER_PARAM).asText()).isEqualTo(“+5103978860”);
}
});
}
如何测试服务器的控制器?我试图设置一个远程java应用程序,并在控制台上使用“play debug run”,但仍然无法右键单击此测试用例运行,并让服务器的控制器在断点处停止

这是我右键单击测试用例时的图像。它要求我选择要使用的启动器。
MMMh因为我使用的是类型安全堆栈,所以我无法访问
播放
可执行文件

但是,我知道一种在调试模式下启动播放服务器的方法。 实际上我是在我的博客上写的

将使JVM(运行播放服务器)监听一个调试连接

然后,您已经说过了,您设置了一个连接到
localhost:9999

在游戏控制台中,您可以选择

  • 启动
    test
    并调试(如果您对控制器进行了单元测试)
  • 手动测试应用程序(否则)
编辑

关于在eclipse中运行测试,我看不出该怎么做,因为它依赖于类路径,可能还依赖于一些配置

但是,如果在包
test.accounts
下的测试类路径中有一个名为
MyTest
的测试,则可以执行
play debug test only test.accounts.MyTest
。这将只执行MyTests的测试

启动时,将调试器(远程应用程序)连接到jvm,以便遍历代码

另一种方法可能是: *
在一个控制台中播放调试
, *附加调试器
*打开另一个控制台执行
test only test.accounts.MyTest
任意次数。

MMMh因为我使用的是TypeSafe堆栈,所以无法访问
play
可执行文件

但是,我知道一种在调试模式下启动播放服务器的方法。 实际上我是在我的博客上写的

将使JVM(运行播放服务器)监听一个调试连接

然后,您已经说过了,您设置了一个连接到
localhost:9999

在游戏控制台中,您可以选择

  • 启动
    test
    并调试(如果您对控制器进行了单元测试)
  • 手动测试应用程序(否则)
编辑

关于在eclipse中运行测试,我看不出该怎么做,因为它依赖于类路径,可能还依赖于一些配置

但是,如果在包
test.accounts
下的测试类路径中有一个名为
MyTest
的测试,则可以执行
play debug test only test.accounts.MyTest
。这将只执行MyTests的测试

启动时,将调试器(远程应用程序)连接到jvm,以便遍历代码

另一种方法可能是: *
在一个控制台中播放调试
, *附加调试器
*打开另一个控制台执行
test only test.accounts.MyTest
任意次数。

这与“播放调试运行”有什么不同?对于“play debug run”,我已经能够启动本地服务器并让Eclipse连接到9999端口进行远程调试。。。很抱歉嗯,对于您的问题,您可能(也许)会看看如何在eclipse中调试specs2测试?当然可以,但是您创建了什么类型的测试?就像我发布的示例一样。它正在使用Play 2 fakeApplication()。是的,它起作用了。首先,在一个控制台中“播放调试”。附加eclipse以侦听localhost:9999。然后运行“仅测试mytest”。这与“播放调试运行”有什么不同?对于“play debug run”,我已经能够启动本地服务器并让Eclipse连接到9999端口进行远程调试。。。很抱歉嗯,对于您的问题,您可能(也许)会看看如何在eclipse中调试specs2测试?当然可以,但是您创建了什么类型的测试?就像我发布的示例一样。它正在使用Play 2 fakeApplication()。是的,它起作用了。首先,在一个控制台中“播放调试”。附加eclipse以侦听localhost:9999。然后运行“仅测试mytest”。
`export SBT_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999`