我有一个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插件与"编译"one_answers"测试"执行绑定时,这两个执行都会正确绑定并在输出中运行。生成并运行了一个小服务器,但测试超时。当我检查生成的服务器的内容时,我看到了很多生成的javascript,但在生成的服务器中的任何地方都没有看到与我在测试中编写的代码相关的代码。
我选择了457923这个值,希望这个神奇的数字在生成的代码中可以grep,但我找不到它。我只是不确定,从文档中看,我需要做什么来确保我有正确的GWT编译所有代码。我看不到任何可以与Truth框架本身相关的代码,也看不到GWTTestCase的测试方法。
有没有gwt-maven插件方面的专家?注意-这不是一个应用程序,它是一个库-我只想强制gwt编译器和GwtTestCase来强制gwt基础设施验证我认为会产生的结果。我需要在一个小的测试WAR插件上运行maven故障保护插件吗?啊。
好吧-我想好了。问题似乎是我没有为htmlunit指定任何浏览器模拟,并且由于没有默认浏览器,我需要显式设置它。否则,它只会启动包含单元测试的服务器,并期望您连接浏览器。