我正在开发一个使用 GWT 和 GXT 并进行大量单元测试的 Web 应用程序。在生产模式之外运行测试可以正常工作。一旦我尝试在生产模式下执行 GWT 测试用例(或为超过 1 个浏览器编译),我就会收到以下错误:
com.google.gwt.junit.client.TimeoutException
message="The browser did not contact the server within 60000ms. - 1 client(s) haven't responded back to JUnitShell since the start of the test. Actual time elapsed: 60.008 seconds.
Try increasing this timeout using the '-testBeginTimeout minutes' option The default value of minutes is 1, i.e., the server waits 1 minute or 60 seconds. ">
com.google.gwt.junit.client.TimeoutException: The browser did not contact the server within 60000ms. - 1 client(s) haven't responded back to JUnitShell since the start of the test.
Actual time elapsed: 60.008 seconds. Try increasing this timeout using the '-testBeginTimeout minutes' option The default value of minutes is 1, i.e., the server waits 1 minute or 60 seconds.
at com.google.gwt.junit.JUnitShell.notDone(JUnitShell.java:1041)
at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1376)
at com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1304)
at com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:652)
at com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:441)
at com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:296)
同样,如果没有生产模式设置(并且只为一个浏览器编译),GWT 测试工作正常,当使用附加参数执行测试时(或为多个浏览器编译时),问题就会出现:
<sysproperty key="gwt.args" value="-prod -standardsMode -logLevel WARN" />
<sysproperty key="java.awt.headless" value="true" />
我尝试在开始测试之前增加超时(-testBeginTimeout),结果相似(唯一的区别是失败前的延迟更长)。在执行具有相同结果的测试时,我还尝试增加超时之前的等待时间。
如上所述,在为多个浏览器编译后尝试运行 GWTTestCase 测试时也会出现此问题。我在解释这两个问题时有点不知所措,随后的谷歌搜索未能找到任何有用的信息。
这似乎是一个配置问题,无论是使用 GWT 还是我的 ANT 设置,但我似乎无法进一步缩小范围。有没有其他人遇到过这个问题并对我有一些急需的建议?
单浏览器编译:chrome
多浏览器编译:chrome,gecko1_8,ie8
库:
GWT 版本:2.5.0rc1
GXT 版本:3.0.0b
Junit 版本:4.11(也试过 4.10)