2

我們最近從Visual Studio 2013切換到2015,與Microsoft Test Manager一樣。
我創建CodedUI測試的方式與我在VS2013中創建它的方式相同。將它與測試用例關聯起來,然後嘗試從Microsoft Test Manager將其作爲自動測試運行。不幸的是我不斷收到此錯誤:Microsoft.VisualStudio.TestTools.UITesting,版本= 14.0.0.0

Error adding test case [16730] to test run: Unable to load the test container '\NAS\UTV\TFS2012\NOO\Automated Tests\Automated Tests\Automated Tests_20160310.5\testcodedui.dll' or one of its dependencies. Error details: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.TestTools.UITesting, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

這可能是由於在VS2015的變化自動測試(沒有測試控制器等)。

VS和MTM 2015可以使用測試控制器和測試代理2013嗎?有人知道這個解決方案嗎?

+0

等等......路徑中的TFS2012是什麼? – Will

+1

我們仍在使用tfs2012。路徑中的TFS2012是構建保存到的NAS上的文件夾的名稱。 – Daveo

回答

3

通常,您的2013測試代理附帶編碼UI 2013(V12)的庫,當您創建測試時,這些引用將由Visual Studio自動添加。

就你的情況而言,你有2015年VSTS,ergo引用2015年的編碼UI(V14)將在你的測試中。但是,當您運行測試時,您的2013代理將無法找到您測試中的參考。爲了解決這個問題,你需要刪除默認添加的所有編碼的UI參考並添加你自己的。

  1. 記下你的測試中的所有Refrenced dll並記下它們的位置。
  2. 您的解決方案下創建一個lib文件夾和所有refrenced DLL複製到該文件夾​​,並將其添加到解決方案(注意不是參考只是添加的話)
  3. 有幾個隱式引用在編碼的UI(您參考中)您可以從this link

  4. 將它們添加到您的lib文件夾中。

  5. 選擇您的.csproj文件==>右鍵點擊==>卸載項目
  6. 右鍵單擊再次==>編輯.csproj的文件
  7. 看看你是否具有進口Testtools.target模板和評論任何import語句它。參考將是這樣的 「Import Project =」$(VSToolsPath)\ TeamTest \ Microsoft.TestTools.targets「Condition =」Exists('$(VSToolsPath)\ TeamTest \ Microsoft.TestTools.targets')「」
  8. 關閉您的項目並重新加載它。
  9. 添加一個引用到你的項目中添加到lib文件夾下的所有dll。
  10. 編譯並確保你沒有發現任何編譯錯誤。

在此之後,關聯您的測試,希望它應該運行。如果你仍然得到任何缺失的文件錯誤,那麼你缺少一個隱式引用。只需在您的2015 VSTS的programfiles目錄中搜索並添加到您的項目refrence到lib文件夾。它應該工作!

+0

它的工作!非常感謝您提供詳細的解決方案。不幸的是,仍然收到一個錯誤 - 「單元測試適配器拋出異常:無法加載一個或多個請求的類型。檢索LoaderExceptions屬性以獲取更多信息。」 – Daveo

+0

看看這裏提到的任何東西是否有助於深入瞭解問題http ://stackoverflow.com/questions/1091853/error-message-unable-to-load-one-or-more-of-the-requested-types-retrieve-the-l –