测试 HTML Unit
HtmlUnit 是一个用 100% Java 编写的开源无 GUI 浏览器。由于 HtmlUnit 不涉及任何本地代码,因此可以在开发模式下完全在 Java 调试器中调试 GWT 测试。HtmlUnit 不需要启动新的浏览器进程;HtmlUnit 浏览器实例仅作为新线程运行。
限制和解决方法
由于 HtmlUnit 是一个无 GUI 浏览器,因此无法在 HtmlUnit 上测试布局。您可以使用 @DoNotRunWith(Platform.HtmlUnit)
注释必须不在 HtmlUnit 上运行的此类测试方法或类。此外,正确的测试有时可能会在 HtmlUnit 上失败,这可能是因为 HtmlUnit 对该功能的支持不足,或者是因为 HtmlUnit 在运行异步测试时出现错误。除了向我们发送错误报告外,您还可以使用 @DoNotRunWith 注释此类测试,这样您的构建就不会一直中断。还有一种临时选项可以减少 HtmlUnit 可能会对异步测试造成的错误 (在我们修复根本问题的同时)。您可以指定 GWT 应在测试失败时尝试运行测试的次数。例如,使用 -Xtries 3
,GWT 将尝试最多运行测试三次。
RunStyle HtmlUnit
HtmlUnit 运行样式使您可以指定其他浏览器模拟。默认情况下,GWT 在 Firefox 38 模拟模式下运行 HtmlUnit。从 2.8 版本开始,GWT 尚未在 HtmlUnit 支持的其他模拟 (即 Edge、Chrome、IE8 和 IE11) 上进行广泛测试。但是,要使用它们,您可以定义系统属性 gwt.args
,如前所述。例如,要使测试在 FF38 和 IE11 模拟模式下运行,请将 gwt.args
设置为
-runStyle HtmlUnit:FF38,IE11