有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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>

共 (3) 个答案

  1. # 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. # 2 楼答案

    要在GWT 2.8 for eclipse IDE中启用开发模式以调试测试用例,请遵循以下步骤:

    1. 右键单击编写测试用例的项目
    2. 选择调试作为配置
    3. 在导航的左侧,选择要调试的测试用例
    4. 然后选择参数选项卡并添加-Dgwt。args=“-devMode”参数 在为VM参数指定的框中
    5. here is the screen-shot
  3. # 3 楼答案

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

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

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

    Eclipse JUnit VM settings example