3

我已将 gwt 版本升级到 2.8 和 java 1.8。测试在 gwt 2.7 和 java 1.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>
4

3 回答 3

3

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

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

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

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

于 2017-03-31T09:19:31.690 回答
3

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

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

这是对 Thomas Broyer 回答的评论。

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

-Dgwt.args="-runStyle Manual:1 -style PRETTY"

Eclipse JUnit VM 设置示例

于 2017-09-11T11:35:20.090 回答