maven无法调试GWT2.8和Java1.8版本的gwt测试
我已经将gwt版本升级到2.8和Java1.8。测试在GWT2.7和Java1.7中运行良好。我需要在gwt中添加额外的配置吗。xml或pom中的任何依赖项
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>
# 1 楼答案
从GWT2.8开始,经典的开发模式现在(正式)被弃用,测试默认在prod模式下运行(即编译为JavaScript)
这意味着您不能在Java代码中设置断点,而期望在Java调试器中达到断点(因为它们是由标准JUnit runner驱动的常规JUnit 3测试,实际上会调用一些方法,但不会调用测试方法本身)
通过在
-Dgwt.args=
系统属性as hinted in the release notes中传递-devMode
,可以(暂时)重新启用测试的开发模式或者,您可以在“手动”模式下运行测试(您将获得一个在浏览器中打开的URL,您可以在其中调试JavaScript),或者您可以在使用HtmlUnit运行样式(默认)运行测试时传递
-Dgwt.htmlunit.debug
系统属性,以显示调试器窗口(注意:我不知道如何使用它)…或者通过记录东西来“调试”“好的旧方法”;和/或制作一个可以在浏览器中运行的GWT应用程序
# 2 楼答案
要在GWT 2.8 for eclipse IDE中启用开发模式以调试测试用例,请遵循以下步骤:
# 3 楼答案
这是对托马斯·布罗耶答案的评论
要在“手动”模式下运行测试,您必须指定runSytle,并且最好将样式更改为PRETTY
Eclipse JUnit VM settings example