2014-02-07 75 views
2

我的所有單元測試在Visual Studio 2013中突然消失了,我似乎無法在測試資源管理器中發現它們。在Visual Studio 2013中消失的測試

我們使用visual studio 2010作爲我們的主要環境。我將Visual Studio 2013 Express Desktop安裝爲我選擇的編輯器,在其中工作,然後在2010年進行最終構建/簽入。2010年一切正常。但2013年快遞不再發現測試。它曾經,然後在改變工作的中間停止。這些是mstest測試。

我得到了下面的測試輸出:

------ Discover test started ------ 
TestTypes\13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b could not be loaded because the TIP could not be instantiated for the following reason(s): System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Tip, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 
File name: 'Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Tip, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 
    at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) 
    at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName) 
    at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) 
    at System.Type.GetType(String typeName, Boolean throwOnError) 
    at Microsoft.VisualStudio.TestTools.TestManagement.TipDelayLoader.LoadTip() 

WRN: Assembly binding logging is turned OFF. 
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. 
Note: There is some performance penalty associated with assembly bind failure logging. 
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. 

========== Discover test finished: 0 found (0:00:00.1640164) ========== 

步驟試圖修復:

  • 從庫中檢出了源的全新副本
  • 驗證其他開發商沒有這個問題(他們的2013安裝找到測試)
  • 修復2013
  • 刪除2013,重新啓動,在攤位2013
  • 創建新的WPF項目和補充檢驗(即檢驗發現,但問題沒有解決)

任何建議,將不勝感激。我的下一步是擦拭系統,但這會很痛苦。

+0

我創建了一個新的WPF項目並添加了一個單元測試。這個測試被發現了,但我的生產項目的問題仍然存在。 – PatrickV

回答

1

我已經做間接地解決了這個問題,以下內容:

  • 增加了一個叫做可測試
  • 增加了一個新的空類的新單元測試的所有測試

(在這一點上我的舊單元測試顯示備份,與新的一起)

  • 恢復所有更改回到什麼是在

(舊單元測試仍然發現)

這看起來似乎不是合我的代碼是導致問題,並增加了新的單元測試固定它檢查。沒有說明它爲什麼會發生,但如果遇到問題,這個程序可能會爲您解決。

5

您使用nUnit嗎?我剛剛有一個類似的情況移動到一臺新的電腦,導致所有現有的測試消失。

轉到工具 - >擴展和更新 - >在左邊選擇在線 - >在搜索框右上角'nunit測試適配器'中輸入並安裝它。

重新啓動Visual Studio。

稍後重建,測試再次出現。

+1

這個解決方案爲我工作。謝謝 – Magicianred

+1

這也適用於我。謝謝。請你回答。 – Trond

+1

甜蜜,爲我效勞! – 2016-01-06 10:46:08

1

有完全相同的問題!

在我們的解決方案,我們有樹中的文件:

  • Local.testsettings
  • LocalTestRun.testrunco​​nfig
  • TraceAndTestImpact.testsettings

使這些文件的備份,刪除它們,並開始沒有他們的解決方案。 建立並找到文件。 然後移回文件,它仍然工作...

這花了我們兩天的故障排除。如果你有同樣的問題,可能值得一試。

0

無論何時,如果您遇到Google測試運行器的問題,我寧願您嘗試以exe運行項目,我遇到同樣的問題,並且當我使用命令行運行它時,發現我使用的某些dll缺失我的執行文件夾。

  1. ,如果你有你在項目中使用任何DLL,驗證它們在你執行文件夾(或GAC)
  2. 嘗試運行的EXE(命令行)的GTEST項目,你會得到信息的錯誤按摩而不是測試消失。
0

我知道這個問題是舊的,但我有一些地方我的測試停止了同樣的問題,沒有顯示在VS 2013 NUnit的3

我的測試沒有顯示出來,因爲我在一個實施IFormattable類,並且在重建項目後,該類的所有測試都消失了。我使用由Visual Studio生成的IFormattable接口的默認實現代碼,該接口在生成的方法中引發NotImplementedException。事實證明,當類拋出異常的方法ToString時,NUnit測試運行器將不顯示任何測試。在我正確實施了ToString方法後,所有測試開始顯示,如他們應該。

相關問題