2013-10-31 23 views
11

每當我嘗試從Visual Studio 2012運行測試資源管理器上的測試時,即使設置了分組依據,也有一些測試被歸類爲「外部」作爲「分組依據工程」 enter image description here當按照項目分組時,測試資源管理器中的「外部」類別下顯示測試

然後將源代碼不被識別

+0

在External中有哪些類型的測試?你使用什麼測試框架? – Spock

+0

它只是單元測試,與MS Test一起運行,問題非常隨機,有時我需要重新啓動Visual Studio並再次運行測試,然後所有內容都會再次返回原始類別 –

+0

http://stackoverflow.com/問題/ 14922597/why-are-scenario-outline-as-external-in-the-vs-2012-test-explorer這裏接受的答案也適用。 –

回答

12

這是因爲PDB文件不包含在編譯。如果您在除調試之外的解決方案配置中編譯,則必須確保包含pdb。

爲了實現這一目標,你必須打開高級構建設置:

  • 右鍵單擊項目並選擇屬性
  • 單擊生成選項卡上
  • 檢查你的配置是在「配置」下拉列表中選擇
  • 點擊高級按鈕。

在新窗口中,您必須在調試信息下拉列表中選擇「僅限pdb」。

+0

您可以指定非none的選項。而且我必須說,這將是我最後懷疑的事情。 –

+0

這讓我想起了我的問題 - 我的項目被設置爲無調試信息,但那是因爲當我將它添加到我的解決方案時,由於某種原因,配置設置爲「發佈」,而不是像其餘的解。檢查其他人可能想知道爲什麼他們的調試符號沒有啓用。 – mdryden

2

這發生在我身上,但只有當名稱空間,類和測試方法的組合長度超過254個字符時纔會發生。 (MS-Test,Visual Studio 2013 12.0.40629.00 Update 5)

namespace MyTests.HaveLong.Complicated.NamespaceAsWell.AsMuchAs.EightyFive.Chars.IfThatMatters 
{ 
    [TestClass] 
    public class A_Long_ClassName_MayAlso_Contribute_ToThe_Issue_ThisOneIs_EightyFive_Characters_Long 
    { 
     [TestMethod] 
     public async Task This_IsAMsTest_TestMethod_WithAnEightyFive_CharacterName_WhichWillShow_UnderExternal() 
     { 
     } 
     [TestMethod] 
     public async Task This_IsAMsTest_TestMethod_WithAnEightyFour_CharacterName_WhichWontShowUnderExternal() 
     { 
     } 
    } 
} 
相關問題