2013-06-26 58 views
1

首先是一些背景;我們正在.NET 4.5中開發一個大型的桌面WPF應用程序,目標是64位Windows 7和8.我們正在使用Visual Studio 2012.2(很快將成爲.3,然後可能是2013年!)和TFS 2012(再次.2。 2013)。使用CodedUI測試測試WPF應用程序,編碼的ui測試項目應共享解決方案嗎?

這款產品目前都在一個大的解決方案(剛剛超過50個項目)產生一個WPF EXE,DLL文件的加載和一個不錯的MSI安裝它。我們使用TFS(門控和計劃)來構建解決方案,其安裝程序(WiX)並運行其測試(SpecFlow用於BDD和MSTest單元測試),這非常有效。

我有一個單獨的調度TFS構建通過PowerShell腳本部署MSI物理試驗檯在一個不受信任的AD域(見TFS2012 LabDefault.11 template deploy scripts fail with 「Team Foundation Server could not complete the deployment task」爲參與該挑戰的細節!)

OK所以那就是我的位置,現在我想把事情推向下一步; CodedUI測試驅動完整的應用程序集成測試;我想「冒煙測試」我的構建。

因此,作爲一個簡單的靈魂,我爲我的產品解決方案添加了一個新項目;一個CodedUI測試項目。

這很高興地運行本地安裝的產品(而不是剛建立的產品;因爲我最終希望CUIT在部署的測試平臺上作爲煙霧測試運行,並且該平臺剛剛安裝了我剛剛構建的MSI)並用斷言執行一些UI測試。

現在我的問題是CUIT項目作爲產品解決方案的一部分,本地測試運行發現並運行我的CUIT測試,這是不期望的。我只想在實驗室構建測試階段運行CUIT測試。

因此是否將CUIT項目放入產品解決方案中是一個壞主意?它應該是一個單獨的解決方案?將它們分開看起來似乎是錯誤的,因爲它們是相關的; CUIT項目是解決方案可部署應用程序的完整堆棧集成測試。

我可以在產品解決方案中包含CUIT並停止測試運​​行者看到測試嗎?或者只有兩種解決方案更好?

有什麼優點和缺點?

更新

最後,我們創建了一個包含一個編碼的UI測試項目新的解決方案,並確保這是與內置的UI解決方案相同的TFS構建建。這使我們可以在本地加載和運行編碼的UI測試而不會出現問題,主UI項目中的單元測試不會受到干擾。仍然看起來有些不協調,但是對於每個用戶的多人團隊測試設置太難以將編碼的UI分解成不同的解決方案更簡單。

+0

如果您可以對現有答案提供一些反饋(以保持討論活躍) – Micha

回答

4

我所做的就是製作一個解決方案,並在其中創建了一個CUIT項目,然後我在其中進行了多個Coded UI測試。這很好,因爲使用orderedTest可以將它們一起運行,並且它們也共享一個UIMap,這也有幫助。

1

我也有/有這個問題,因爲我們在使用CUIT的開始。目前,CUIT仍在產品解決方案中。我們這樣做是因爲測試應該留在開發人員的記憶中。當測試停留在解決方案上時,恐怕他們會被遺忘。但事實上,有時候CUIT會污染產品解決方案,所以我想他們在經過一段時間後會得到自己的解決方案,並且測試已經建立。

編輯:如果您使用不同版本的Visual Studio,則必須考慮例如VS Prof.無法使用代碼UI測試構建解決方案。這意味着在「多VS版本環境」中,您必須將編碼UI測試與「真實」代碼分開。

+0

單獨編碼的UI測試項目+解決方案就是我現在正在使用的。似乎是沒有由測試運行器(我不想要)運行CUIT測試的唯一方法,但我不喜歡它,因爲它意味着編輯主項目解決方案的人可能仍然不知道CUIT測試存在。 –

+0

也許這「幫助」您的測試亞軍「問題」:http://stackoverflow.com/questions/12582025/how-to-exclude-tests-from-vs2012-test-runner – Micha

+0

這就是爲什麼我試圖這條路線現在。我更喜歡所有在一個souluition中,但希望測試跑步者只發現單元測試不CUITs,到目前爲止,這看起來像唯一的選擇。 –