2012-03-08 62 views
1

我有一個WPF應用程序和一組GUI測試。這些測試加載應用程序,然後移動鼠標並點擊事物。如果我在登錄時運行它,此工作正常。來自持續集成的C#GUI測試

但是,當測試在我們的持續集成服務器上運行時,鼠標始終將其位置報告爲(0,0)。如果我告訴鼠標移動然後檢查它的位置,它仍然是(0,0)。

我們的服務運行時選中「允許服務與桌面交互」,並且Environment.UserInteractive爲true。另外,如果我在本地啓動測試並鎖定我的屏幕,則鼠標具有相同的行爲(位置始終爲0,0)。

如何在作爲服務運行時使用鼠標?

+0

這些UI測試是如何創建的?編碼的用戶界面?你用什麼爲你的CI服務器? – 2012-03-08 17:09:31

+0

UI測試只是啓動我們的應用程序,然後使用System.Windows.Forms.Cursor.Position和user32.dll來移動並單擊鼠標。 CI使用Pulse,但只是從命令行開始測試。 – 2012-03-08 17:16:29

+0

研究使用像編碼UI這樣的實際UI測試框架來進行UI測試。你甚至如何驗證測試通過或失敗? – 2012-03-08 17:42:23

回答

1

我認爲這article可以闡明爲什麼你的應用程序沒有得到你期望的鼠標位置。我假設你正在Vista和後期運行你的測試。

這是我認爲正在發生的事情。您的服務在會話0中運行,這是非交互式會話。所以鼠標在那裏並不存在。

當您鎖定桌面時,Windows切換到WinLogon桌面並竊取鼠標。運行在普通桌面上的應用程序不會有鼠標可供使用。