我們使用UI自動化和Nunit爲WPF應用程序創建測試UI測試。 我們創建的測試在從本地機器運行時可以正常工作。那些測試永遠不會在我們的構建服務器上成功運行(使用TeamCity)。打開應用程序窗口後,構建總是掛起但是,如果我登錄(遠程桌面),在我們的構建服務器上,所有UI自動化測試也能成功運行。 所以我猜測它可能與運行活動的Windows會話有關。任何想法如何說服我們的構建服務器創建活動的Windows會話或任何其他解決方案,使這些測試在構建服務器上運行?在構建服務器上運行UI自動化測試
回答
您沒有太多選擇。我將列出兩個我知道,最優先選擇第一:
- 建立一個虛擬機您的生成服務器上。您的構建在虛擬機中執行。您可以鎖定主機(即您的buildserver),以確保安全。
- 讓別人一直登錄。這個場地造成安全問題。您可以通過刪除鼠標,鍵盤和屏幕來緩解此問題,並且只能通過RDP或類似的方式訪問buildserver。
編輯
看看這個TestComplete FAQ項目:TestComplete可以執行腳本當計算機被鎖定?
好吧,我只是在這裏猜測。
嘗試使用本地構建服務器用戶而不是系統帳戶運行TeamCity服務。 也許你必須在開始新構建之前用該帳戶登錄一次。
我們已經試過了。當我說如果我登錄(遠程桌面),在我們的構建服務器上,所有UI自動化測試也能成功運行,我已經以該用戶身份登錄,並且所有測試都在該用戶下運行。問題是,這個用戶被鎖定測試失敗的第二個問題。如果我在本地計算機上運行它們並在運行時鎖定計算機,它們也會失敗。 – andreja 2009-05-06 12:32:24
它的definatley聽起來像你需要運行你的測試與交互式會話而不是服務。添加「允許服務與桌面交互」可能會有所幫助,但Vista顯然不支持此功能。
如果你可以將你的構建interactivley作爲一個命令行來運行,而不是一個可以工作的服務器。
我們曾經使用Visual Studo 2008加載代理運行我們的UIAutomation測試來分發它們,作爲虛擬機上的命令行工具運行,沒有任何問題。
我也同意你可能不應該在構建服務器上運行UI測試,這是日常構建的一部分。
打開應用程序窗口後總是掛起。
實例化UI的測試?這不起作用,例如如果您獲得模態對話框,則構建將掛起。這就是MVP模式發明的原因,它將活動表示代碼從具體視圖中分離出來。
您在自動化測試中使用模擬視圖嗎?
- 1. 如何在構建服務器上運行specflow測試?
- 2. 在構建服務器上運行NUnit測試
- 3. 在單個CruiseControl.NET服務器上使用WatiN測試運行並行構建
- 4. 在Teamcity構建服務器上進行單元測試D3DERR_NOTAVAILABLE
- 5. VS測試在本地運行,但在構建服務器上找不到
- 6. 使用Selenium進行微服務架構的測試自動化
- 7. 運行JUNIT自動化構建測試 - 如何?
- 8. 在遠程teamcity構建代理上運行selenium自動化測試
- 9. Windows UI自動化API在服務器上運行時未找到子元素
- 10. TFS構建服務器 - 升級後未運行測試
- 11. 在Ubuntu上運行iOS UI自動化
- 12. iPhone:在模擬器上運行自動化測試
- 13. 爲什麼我的測試在構建服務器上運行時失敗?
- 14. 單元測試僅在構建服務器上運行時失敗
- 15. 在TFS構建服務器上運行單元測試Fakes Framework |錯誤
- 16. Visual Studio的差異,當在Visual Studio和構建服務器上運行測試
- 17. Jenkins UI自動化測試
- 18. Calabash UI自動化測試
- 19. Flex UI測試自動化
- 20. 如何使用命令行運行xcode UI自動化測試
- 21. iphone自動化測試與儀器上adhoc構建
- 22. 在測試服務器上自動執行Word的錯誤
- 23. 本地或在服務器上運行Excel自動化
- 24. 設置生成服務器以運行NUnit Selenium自動測試
- 25. 是否需要Visual Studio才能在構建服務器上運行編碼的UI測試?
- 26. 自動化測試,構建和部署
- 27. 按計劃對服務器運行自動化測試作爲健康檢查
- 28. Web服務的自動化測試
- 29. 自動化Web服務測試
- 30. SOAP服務的自動化測試
我們在構建服務器上的虛擬機中執行所有構建。所有測試都在本地帳戶(不是系統)下運行。它沒有解決問題。 保持一直登錄的人不是一個選項。正如我所說的,我們有3個虛擬機,這個版本可以運行。所以每次構建選擇最快的可用虛擬機。 vm上的本地用戶通常已登錄,但我們無法確定它未鎖定。我們真的希望儘可能地使這個過程自動化,所以手動登錄是最不吸引人的選擇。 – andreja 2009-05-06 12:45:01
@andreja,我已經通過Testcomplete的Q&A鏈接更新了答覆。我懷疑有沒有其他解決方法。你必須讓某人登錄。當您的虛擬機「解鎖」並且主機「鎖定」(但我不是系統管理員)時,我不會看到這會造成安全問題。 – 2009-05-06 13:10:29
@andreja:如果您想自動登錄,您可以設置一些註冊表鍵值,並且您的構建用戶將在構建VM啓動後登錄。如果你願意,我可以查找相應的註冊碼。 – 2009-05-06 13:31:14