2009-05-05 160 views
9

我們使用UI自動化和Nunit爲WPF應用程序創建測試UI測試。 我們創建的測試在從本地機器運行時可以正常工作。那些測試永遠不會在我們的構建服務器上成功運行(使用TeamCity)。打開應用程序窗口後,構建總是掛起但是,如果我登錄(遠程桌面),在我們的構建服務器上,所有UI自動化測試也能成功運行。 所以我猜測它可能與運行活動的Windows會話有關。任何想法如何說服我們的構建服務器創建活動的Windows會話或任何其他解決方案,使這些測試在構建服務器上運行?在構建服務器上運行UI自動化測試

回答

3

您沒有太多選擇。我將列出兩個我知道,最優先選擇第一:

  • 建立一個虛擬機您的生成服務器上。您的構建在虛擬機中執行。您可以鎖定主機(即您的buildserver),以確保安全。
  • 讓別人一直登錄。這個場地造成安全問題。您可以通過刪除鼠標,鍵盤和屏幕來緩解此問題,並且只能通過RDP或類似的方式訪問buildserver。

編輯

看看這個TestComplete FAQ項目:TestComplete可以執行腳本當計算機被鎖定?

+1

我們在構建服務器上的虛擬機中執行所有構建。所有測試都在本地帳戶(不是系統)下運行。它沒有解決問題。 保持一直登錄的人不是一個選項。正如我所說的,我們有3個虛擬機,這個版本可以運行。所以每次構建選擇最快的可用虛擬機。 vm上的本地用戶通常已登錄,但我們無法確定它未鎖定。我們真的希望儘可能地使這個過程自動化,所以手動登錄是最不吸引人的選擇。 – andreja 2009-05-06 12:45:01

+0

@andreja,我已經通過Testcomplete的Q&A鏈接更新了答覆。我懷疑有沒有其他解決方法。你必須讓某人登錄。當您的虛擬機「解鎖」並且主機「鎖定」(但我不是系統管理員)時,我不會看到這會造成安全問題。 – 2009-05-06 13:10:29

+0

@andreja:如果您想自動登錄,您可以設置一些註冊表鍵值,並且您的構建用戶將在構建VM啓動後登錄。如果你願意,我可以查找相應的註冊碼。 – 2009-05-06 13:31:14

1

好吧,我只是在這裏猜測。

嘗試使用本地構建服務器用戶而不是系統帳戶運行TeamCity服務。 也許你必須在開始新構建之前用該帳戶登錄一次。

+0

我們已經試過了。當我說如果我登錄(遠程桌面),在我們的構建服務器上,所有UI自動化測試也能成功運行,我已經以該用戶身份登錄,並且所有測試都在該用戶下運行。問題是,這個用戶被鎖定測試失敗的第二個問題。如果我在本地計算機上運行它們並在運行時鎖定計算機,它們也會失敗。 – andreja 2009-05-06 12:32:24

1

它的definatley聽起來像你需要運行你的測試與交互式會話而不是服務。添加「允許服務與桌面交互」可能會有所幫助,但Vista顯然不支持此功能。

如果你可以將你的構建interactivley作爲一個命令行來運行,而不是一個可以工作的服務器。

我們曾經使用Visual Studo 2008加載代理運行我們的UIAutomation測試來分發它們,作爲虛擬機上的命令行工具運行,沒有任何問題。

我也同意你可能不應該在構建服務器上運行UI測試,這是日常構建的一部分。

0

打開應用程序窗口後總是掛起。

實例化UI的測試?這不起作用,例如如果您獲得模態對話框,則構建將掛起。這就是MVP模式發明的原因,它將活動表示代碼從具體視圖中分離出來。

您在自動化測試中使用模擬視圖嗎?

相關問題