2013-10-31 36 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() 
     { 
     } 
    } 
} 
相关问题