我正在使用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测试工作正常,当使用附加参数执行测试时(或编译多个浏览器时),问题就会出现问题:< / p>
<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)
答案 0 :(得分:0)
这在gwt.xml文件中指定“gxt.user.agent”属性时会出现问题。通过指定GWT的“user.agent”属性,我现在能够编译多个浏览器并执行我的测试,而GWTTestCase测试无法从浏览器获得连接。