0

我有一个 java 库。我用 Maven 构建它。我想确保 GWT 用户可以在某处使用它。我在适当的地方添加了@GwtCompatible 和@GwtIncompatible。现在,我想测试这是否会按预期工作。

该库是 Java 中的一个测试框架 (http://github.com/truth0/truth) - 它提供了各种测试命题等。人们将在纯 Java 单元测试中使用它,但他们也将使用它在 GWT 集成测试中(例如扩展 GWTTestCase)。我自己没有这方面的应用程序,但我需要验证它在 GWT 中使用时不会中断。

一个普通的 JUnit 测试会(微不足道地)使用如下代码:

import static ...Truth.ASSERT;

ASSERT.that(123456).isGreaterThan(12345);

我已经创建了一个小的 GWTTestCase,我希望在它的基础上充分利用这个库的 GWT 兼容子集。简单的 GWTTestCase 示例如下所示:

import static org.truth.Truth.ASSERT
...
public class TruthGwtTest extends GWTTestCase {
  @Override public String getModuleName() {
    // I have a org/truth/TruthTest.gwt.xml file
    return "org.truth.TruthTest";
  }
  public void testFoo() {
    ASSERT.that(457923).is(1); // want this to fail
  }
}

我的 TruthTest.gwt.xml 看起来像这样(我承认我在这里有点“装货”)

<module>
  <source path=""/>
  <super-source path="super"/>
  <inherits name="com.google.gwt.junit.JUnit"/>
</module>

当我将 gwt-maven-plugin 与“编译”和“测试”执行绑定时,两个执行都正确绑定并在输出中运行。生成并运行了一个小服务器,但测试超时。当我检查生成的服务器的内容时​​,我看到了很多生成的 javascript,但是我在生成的服务器的任何地方都看不到与我在测试中编写的代码相关的代码。

我选择了值 457923,希望这个幻数在生成的代码中可以被 grep 识别,但我找不到它。我只是不确定,从文档中,我需要做些什么来确保我拥有正确的 GWT 编译的所有代码。我没有看到任何可以与 Truth 框架本身相关联的代码,也没有看到 GWTTestCase 的测试方法。

有 gwt-maven-plugin 的专家吗?注意 - 这不是一个应用程序,它是一个库 - 我只想强制 gwt 编译器和一个 GwtTestCase 强制 GWT 基础架构验证我认为会从中产生的内容。我需要在一个小测试 WAR 插件上运行 maven-failsafe-plugin 吗?嘎嘎。

4

1 回答 1

0

好的 - 我想通了。问题似乎是我没有为 htmlunit 指定任何浏览器仿真,并且由于没有默认浏览器,我需要明确设置它。否则,它只会启动包含单元测试的服务器,并期望您连接浏览器。

于 2012-08-21T05:29:28.353 回答