Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 测试显示在“测试”下;“外部”;按项目分组时测试资源管理器中的类别_Unit Testing_Visual Studio 2012_Test Explorer - Fatal编程技术网

Unit testing 测试显示在“测试”下;“外部”;按项目分组时测试资源管理器中的类别

Unit testing 测试显示在“测试”下;“外部”;按项目分组时测试资源管理器中的类别,unit-testing,visual-studio-2012,test-explorer,Unit Testing,Visual Studio 2012,Test Explorer,每当我尝试从Visual Studio 2012在测试资源管理器上运行测试时,有些测试被归类为“外部”,即使Group By设置为“Group By Project” 然后源代码无法识别这是由于编译中未包含pdb文件。如果您是在非调试的解决方案配置中编译,则必须确保包含pdb 要实现此目的,必须打开“高级生成”设置: 右键单击项目并选择属性 单击build选项卡 检查您的配置是否在“配置”下拉列表中被选中 点击高级按钮 在新窗口中,您必须在“调试信息”下拉列表中选择“仅pdb”。这对我来说是

每当我尝试从Visual Studio 2012在测试资源管理器上运行测试时,有些测试被归类为“外部”,即使Group By设置为“Group By Project”


然后源代码无法识别

这是由于编译中未包含pdb文件。如果您是在非调试的解决方案配置中编译,则必须确保包含pdb

要实现此目的,必须打开“高级生成”设置:

  • 右键单击项目并选择属性
  • 单击build选项卡
  • 检查您的配置是否在“配置”下拉列表中被选中
  • 点击高级按钮

在新窗口中,您必须在“调试信息”下拉列表中选择“仅pdb”。

这对我来说是发生的,但只有当名称空间、类和测试方法的组合长度超过254个字符时才会发生。(MS测试,Visual Studio 2013 12.0.40629.00更新5)


我尝试了被接受的解决方案,它没有改变任何东西,所以我恢复了它,然后突然一切都为我解决了。VS2017。

您在外部进行的测试类型是什么?您使用的是什么测试框架?它只是单元测试,使用MS test运行,问题非常随机,有时我需要重新启动visual studio并再次运行测试,然后所有内容都恢复到原始类别。此处接受的答案也很好。您可以指定除“无”之外的任何选项。我必须说,这是我最不可能怀疑的事情。这让我知道了我的问题——我的项目被设置为“无调试信息”,但这是因为当我将其添加到解决方案时,由于某种原因,配置被设置为“发布”,而不是像解决方案的其他部分一样进行调试。其他人可能想知道为什么他们的调试符号没有启用。在my env-VS 2017版本15.6.6中,如果您选择任何调试信息生成选项,也会发生这种情况。它与类的全名和测试方法的组合长度也没有关系,因为在我的例子中,它显然也比254个字符短。肯定还有另外一个原因。嗯,对我来说,它被设置为“满”。
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()
        {
        }
    }
}