无法调试 gwt 2.8 和 java 1.8 版本的 gwt 测试



我已经将gwt版本升级到2.8和java 1.8。测试在 gwt 2.7 和 java 1.7 中运行良好。我是否需要在 gwt 中添加额外的配置.xml或者在 pom 中添加任何依赖项

聚 甲醛:

<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<scope>2.8</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<scope>2.8</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
<scope>2.8</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava-gwt</artifactId>
<version>20.0</version>
</dependency>

测试代码 :

public class Test extends GWTTestCase {
Logger logger = Logger.getLogger(this.getClass().getCanonicalName());
/* (non-Javadoc)
* @see com.google.gwt.junit.client.GWTTestCase#getModuleName()
*/
@Override
public String getModuleName() {
return "org.field.TestJUnit";
}
public void testRenderAndBindTopScene() {
GWT.log("hi");
PageEx pageEx = GWT.create(PageEx.class);
}
}

TestJUnit.gwt.xml :

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to="Field">
<!-- Inherit our applications main module. -->
<inherits name='org.field.Field' />

<source path="client" />
<source path="shared" />
</module>

从 GWT 2.8 开始,经典的开发模式现在(正式)被弃用,测试默认在生产模式下运行(即编译为 JavaScript)。

这意味着您不能在 Java 代码中设置断点,并且期望在 Java 调试器中到达断点(因为它们是由标准 JUnit 运行器驱动的常规 JUnit 3 测试,因此实际上会调用某些方法,但不会调用测试方法本身)。
可以(暂时)通过在-Dgwt.args=system 属性中传递-devMode来重新启用测试的开发模式,如发行说明中所述。

或者,您可以在"手动"模式下运行测试(您将获得一个要在浏览器中打开的 URL,您可以在其中调试 JavaScript),或者您可以在使用 HtmlUnit 运行样式(默认)运行测试时传递-Dgwt.htmlunit.debugsystem 属性以显示调试器窗口(注意:我不知道如何使用它)。

。或者通过记录事物来"调试"好的旧方法";和/或制作一个小的复制案例作为您可以在浏览器中运行的 GWT 应用程序。

要在 GWT 2.8 中为 eclipse IDE 启用用于调试测试用例的开发模式,请按照以下步骤操作,这肯定会对您有所帮助:

  1. 右键单击在其中编写测试用例的项目。
  2. 选择"调试作为配置"。
  3. 导航左侧选择要调试的测试用例。
  4. 然后选择参数选项卡并添加 -Dgwt.args="-devMode">参数 在为 VM 参数指定的框中。
  5. 这是屏幕截图

这是对托马斯·布罗耶回答的评论。

要在"手动"模式下运行测试,您必须指定 runSytle 并优先将样式更改为 PRETTY。

-

dgwt.args="-runStyle Manual:1 -style PRETTY">

Eclipse JUnit VM 设置示例

相关内容

  • 没有找到相关文章

最新更新