内置测试未添加到 Visual Studio 测试资源管理器 window

Built tests are not added to the Visual Studio Test Explorer window

  1. 我为 Visual Studio 2013 设置了 SpecFlow 插件。
  2. 我创建了新的功能项并构建了它。

结果:构建的测试未显示在测试资源管理器中。为什么?

我是按照这个做的video

为了将其配置为生成 MSTest 测试,您需要将其添加到您的 app.config:

<specFlow>    
  <unitTestProvider name="MSTest"></unitTestProvider>
</specFlow>

我遇到了同样的问题,但解决方案不同。

根据 SpecFlow Github issue 上的建议,以下对我有用:

  1. 关闭所有 Visual Studio 个实例
  2. 转到 %TEMP%\VisualStudioTestExplorerExtensions\
  3. 删除这里的所有文件夹
  4. 再试一次

如果测试没有显示在测试资源管理器中,您需要安装 NUnit 测试适配器:

转到工具->扩展和更新->在线->Visual Studio图库->工具->测试和select NUnit 测试适配器

Visual Studio 可以在加载时更改默认处理器架构。在无休止地试图找出问题的同时,我终于弄明白了,这并不是真正的 Specflow 引起的问题。

如果您有需要特殊架构的引用,它将阻止测试显示在测试资源管理器中。根据您的需要将体系结构更改为 x86 或 x64。

要查看构建问题,您可以做的另一件事是打开输出 window 并将下拉列表更改为构建期间的测试。它将突出显示构建过程中发生的事情的任何信息。

我觉得有人应该提一下以防万一。

我 运行 使用 SpecRunner 进行 SpecFlow 测试时遇到了同样的问题,事实上有几次。 尝试了以上所有建议后,我发现问题的唯一解决方案是卸载并重新安装 SpecRun NuGet 包。下一个构建,测试按预期出现在测试资源管理器 window 中。

就我而言,未发现测试的原因是因为我使用的是 Resharper 构建。
我一去:Resharper -> Options -> Tools -> Build -> General: "Use ReSharper Build"(untick),然后突然发现所有测试。

就我而言,上述所有方法均无效。我的解决方案:我不知道为什么,但是 - 我在 "Tools => Extensions and Updates" 中重新安装了 "Specflow for Visual Studio 2015",然后我创建了一个新的功能文件(旧的仍然不起作用),这个新功能-文件工作正常。

对我来说,问题是我的 srprofile 文件中的 TestAssemblyPath。它与我实际的 dll 名称不匹配。

对我来说,我从使用直接 DLL 引用改为使用 SpecFlow 3.1.7.4 版的 NuGet 引用,这解决了问题。

我需要引用“SpecFlow”、“SpecFlow.NUnit”和“SpecFlow.Tools.MsBuild.Generation”。 然后单击 Visual Studio 中的“Show All Files”按钮以在其关联的特征文件(这曾经是关联的子文件)的同级级别查看代码隐藏文件旧版本中的功能文件)。

我还需要在代码隐藏文件中使用“Include In Project”上下文菜单项,以便测试显示在 Visual Studios“测试资源管理器”中".

注意:我确实尝试从 NuGet 包中解压缩 Specflow 所需的文件并在我的项目中直接引用它们以与我项目中的其他直接引用(非 NuGet 引用)保持一致,但这似乎并不工作,你必须使用 NuGet 参考。我在 github 中发现了一个已解决的问题,它指出我们必须使用 Nuget 参考来让测试在测试资源管理器中工作: https://github.com/techtalk/SpecFlow/issues/1617

我尝试安装 Nugget 包

SpecFlow.Tools.MsBuild.Generation

与 specflow 相同的版本,现在我可以在 TestExplorer 中看到测试,其他方式对我不起作用。

我已经从

安装了 1 个
Nugget Package Specflow
Specflow.NUnit
Nunit
Nunit3TestAdapter

Specflow 的 Visual Studio 扩展和 NUnitTestAdapter