2011-06-23 133 views
2

我已經設置了一個CI構建版本來構建我的解決方案並運行我的單元測試。解決方案是VS 2010.我的測試項目的目標是4.0框架。單元測試框架的10.0版本被正確引用。如果我在VS 2010中本地運行測試,那麼我沒有任何問題。但是,當我在TFS服務器(即TFS 2010)上運行CI構建時,出現錯誤消息:TFS 2010正試圖在MSTest 2008下運行MsTest 2010項目

未找到文件:C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ MSTest。 exe

這是VS 2008的MSTest,它沒有安裝在我的TFS服務器上。我確實在我的TFS服務器上安裝了VS 2010,包括測試工具,但TFS不查找它。

我的問題:爲什麼TFS會嘗試使用此版本的MSTest來運行測試?我無法在服務器上的任何項目,解決方案或配置中的任何位置找到此路徑。

該解決方案和相關項目始於VS 2008項目,並已遷移到VS 2010.這些文件被引入TFS 2010的全新安裝和新的TFS項目。他們沒有從2008 TFS服務器遷移。

Activity Log

Full Log

謝謝!

+0

您是否從2008年升級到2010年(服務器,slns,項目,構建等)?或者這是一個乾淨的安裝,所有上述文件都是在2010年創建的? –

+0

另外,你可以提供構建輸出日誌,所以我可以看到構建失敗的地方。 –

+0

我編輯了原稿以包含請求的其他詳細信息。謝謝你的幫助! – swannee

回答

1

從查看日誌,問題是MSTest在這裏使用錯誤的版本運行,因爲您有一個傳統的程序集引用。

確保您的單元測試項目和任何其他正在執行測試的項目都有正確的程序集引用到新的mstest程序集。我猜你要麼錯過了一篇參考文獻,要麼在新的參考文獻中添加並忘記刪除舊的參考文獻。

「我無法在服務器上的任何項目,解決方案或配置中的任何位置找到此路徑。」

是的,你不會在任何地方看到路徑 - 它只會根據引用到單元測試項目中的程序集來執行。

+0

你能告訴我日誌中的什麼讓你覺得這是什麼?我瀏覽了每個項目,但無法找到以前版本的錯誤參考。 – swannee

+0

沒有其他跡象表明您在步驟或其他步驟中錯誤地或以其他方式引用了它。只是消除的過程。如果您將所有測試複製到一個新的測試程序中並運行構建(當然,使用該測試程序),我敢打賭你不會遇到這個問題,並進一步證明它是一個程序集引用問題。如果你無法在任何地方找到遺留參考,我會接下來的一個鏡頭。 MSTest將使用它找到的任何程序集引用,因此它在某處找到它... –

+0

不幸的是,沒有傳統引用。我認爲創建一個新的測試項目並移動測試的想法可能是最好的方法。如果有效,我會將此回覆標記爲正確。 – swannee

2

只是一個後續行動,因爲我最終發現了什麼導致了我的問題,而不是上面給出的答案。我們在這個項目中引用了一個名爲「SoftwareApproach.TestingExtensions」的第三方斷言實用程序,類似於「應該」。這個DLL是一個較舊的版本,幷包含對MSTest 9(來自VS 2008)的引用。因爲這個DLL引用了MSTest 9,它在構建服務器上導致了這個錯誤,但是,測試將在本地運行。坦率地說,不知道爲什麼它沒有在本地投訴,因爲沒有綁定重定向,並沒有安裝VS 2008。

但是,更新到所提到的dll構建,而不是引用MSTest 10解決了我們在構建服務器上的問題。