2013-08-01 164 views
2

我試圖在CI基礎上的WPF應用程序上運行UI測試(使用Windows自動化API)。我已將我的解決方案與.testsettings文件關聯,並將我的測試.dll鏈接到構建過程。一切似乎都很好。當通過命令行運行時MSTest執行卡住

當我排隊一個新的構建,在TFS的構建日誌中,我可以看到命令行參數傳遞給構建機器上的MSTest(2010) - 看起來,.testsettings文件加載正確,並且正確的測試.dll傳遞給MSTest.exe。

但是,它似乎在Executing tests消息之後「卡住」 - 無論是通過構建運行還是直接通過構建計算機運行。另外,我在.testsettings文件中指定了一個在測試之前運行的啓動腳本(它在本地複製應用程序的二進制文件,以便測試可以啓動應用程序並運行適用的測試)。這個腳本似乎沒有被執行(文件應該複製到的目錄是空的)。

有沒有人看到類似的問題,並知道如何處理它?

+0

「卡住」是什麼意思?我想「執行測試」是我在構建日誌中看到的最後一個輸出,並且構建沒有完成,對吧? 嗯...可能是你的用戶界面測試正在等待用戶輸入(爲了訪問網絡/映射網絡驅動器或類似的憑據?如果你需要管理員權限來運行你的啓動腳本有關UAC的建立機器? – Elena

+1

這是唯一一組掛起的測試嗎?我最近在構建機器上安裝VS 2012後遇到了類似的問題。顯然,VS 2010需要有更新才能與VS 2012兼容。 [這裏](http://stackoverflow.com/questions/16337564/mstest-hangs-for-seemingly-no-reason)。 –

+0

非常感謝你!如果可以的話,我會高興的。我認爲就是這樣。我瘋了......我嘗試了所有的東西,從編譯.NET 4和VS 2010中的測試,到手動替換構建機器上的DLL。我還沒有設法安裝SP1,但我正在努力。 –

回答

4

正如Mike在評論中所說的,這個問題實際上是VS 2010中的一個錯誤,如果您將VS 2012並排安裝,則無法通過2010 IDE運行測試。不幸的是,我無法在構建機器上安裝VS 2010 SP1,但也可以通過將/noisolation參數添加到標準命令行語法來解決此問題(這會通過MSTest過程運行測試,從而以某種方式解決問題)。但是,由於您無法通過TFS的集成自動測試功能定義其他參數以傳遞給MSTest,因此我編寫了自己的應用程序,該程序作爲計劃任務調用,運行測試併發送包含HTML報告的電子郵件(我使用過trx2html - 請注意,如果您使用VS2012,則需要beta 0.7版本,因爲自VS 2010以來,.trx格式發生了變化)。