2009-12-15 77 views
1

我在使用SWT構建的eclipse應用程序上運行Junit測試用例。我正在使用SWTBot進行GUI測試。所以,這裏是我的問題:使用SWTBOT在無頭模式下運行測試時處理SWT對話框

editor.bot().button("Make Excel Template").click();

此代碼可以幫助我產生在我的應用程序的模板。一旦完成,它會拋出一個帶有「OK」的模態對話框作爲消息。但是,我無法讓SWTBot找到這個按鈕/控件/對話框。我不斷收到'WidgetNotFoundException'。

有人遇到過這個嗎? SWTBot網站上的官方內容表示,對話框應該在單獨的非UI線程中運行。然而,所提供的例子並不是很豐富。

感謝您的幫助!

回答

0

@carstenlez - 您的解決方案適用於JFace對話框。然而,我的應用程序正在使用一個MessageBox - 這是一個本地對話框。 SWTBot不支持本機對話框,所以我幾乎沒有選擇。

+0

更確切地說 - 沒有簡單的選擇。我沒有深入研究代碼,但我想你可能會嘗試替換該本機對話的Java包裝和模擬實現。確保測試不會完成,但測試底層原生GUI並不是單元測試的一部分。 – 2010-03-24 04:43:28

0

首先,您應該在非UI線程中運行測試(如果尚未這樣做的話)。 其次,你可以使用條件等待執行,將帶來的對話框了行動後出現的模態對話框:

bot.waitUntil(Conditions.shellIsActive("This is the title of the modal dialog ")); 
bot.button("OK").click(); 

這解決了我們的時間問題。

相關問題