2013-01-15 67 views
0

我正在使用GWT和GXT進行大量單元測試。在生產模式之外運行測試可以像我期望的那樣運行。當我嘗試執行在生產模式的GWT測試用例(或編譯超過1個瀏覽器),收到以下錯誤:GWTTestCase在生產模式和多個瀏覽器中失敗

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) 

同樣,不產生模式設置(並且僅編譯爲僅一個

<sysproperty key="gwt.args" value="-prod -standardsMode -logLevel WARN" /> 
<sysproperty key="java.awt.headless" value="true" /> 

我試着開始之前增加超時:瀏覽器)的GWT測試工作正常,測試時使用的附加參數(或編譯超過1個瀏覽器時)執行的問題擡起了頭測試(-testBeginTimeout),具有相似的結果(唯一的區別是失敗前的延遲時間較長)。我也嘗試在執行測試時增加等待時間,結果相同。

正如上面所暗示的,在編譯多個瀏覽器之後嘗試運行GWTTestCase測試時,也會出現此問題。我在解釋這兩個問題方面有點不知所措,隨後的谷歌搜索未能提供任何有用的信息。

這似乎是一個配置問題,無論是與GWT或我的ANT設置,但我似乎無法進一步縮小它。有沒有其他人遇到這個問題,併爲我提供一些急需的建議?

單個瀏覽器編譯:鉻
多瀏覽器編譯:鉻,gecko1_8,IE8

利布斯:
GWT版本:2.5.0rc1
GXT版本:3.0.0b
JUnit版本:4.11(也試過4.10)

回答

0

這是在gwt.xml文件中指定「gxt.user.agent」屬性的問題。通過指定GWT的「user.agent」屬性,我現在可以編譯多個瀏覽器並執行我的測試,而GWTTestCase測試無法從瀏覽器獲得連接。