为什么我的SpecFlow测试没有出现在Visual Studio Test窗口中?

时间:2016-08-15 13:44:56

标签: visual-studio-2015 specflow

我已经阅读了SpecFlow的入门教程。 一切都运行正常,除了我有@SpecRun测试,因为我还没有输入演示密钥。

但在我们的主项目中,我们使用NUnit而不是SpecFlow + Runner。 所以我试图模仿那个项目。如果您使用NUnit,则不需要演示密钥。 所以我将单元测试提供程序更改为:

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

我还将我的教程参考文献与主项目的参考文献进行了比较。 我发现我可以拿出TechTalk.SpecRun,该项目仍然可以编译。 当然需要TechTalk.SpecFlow。

如果我取出SpecRun.SpecFlowPlugin,除了@SpecRun之外没有测试显示,这是没有演示密钥的测试延迟。

我还在主项目中看到一个名为:SpecFlowNUnitExtension.cs的csharp文件。 我带来了这个文件,但我的测试仍未显示在Visual Studio测试窗口中。 注册这个文件需要做些什么吗?

5 个答案:

答案 0 :(得分:11)

您需要Visual Studio的测试运行适配器才能在测试资源管理器中获取测试。它们由NuGet包分发。 将测试运行器的包添加到测试项目中。

  • SpecFlow + Runner:SpecRun.Runner
  • NUnit2:NUnitTestAdapter
  • NUnit3:NUnit3TestAdapter
  • XUnit:xunit.runner.visualstudio
  • MsTest:无需额外的适配器

答案 1 :(得分:4)

将NUnit测试适配器更新为NUnit3测试适配器。 重新启动Visual Studio并重建应显示的测试。

答案 2 :(得分:1)

对于VS 2019 我花了几个小时在Test Explorer上看到了可运行的测试。我正在使用SpecFlow.xUnit nuget,它将SpecFlow安装为依赖项,并且我将xunit.runner.visualstudio安装为测试运行程序。还应按照SpecFlow的getting started page所述安装SpecFlow.Tools.MsBuild.Generation nuget。在将功能分离并在测试项目中将cs文件生成到不同的文件夹后,我开始在spec上运行测试。此外,如果您单击在解决方案资源管理器中显示所有文件,则可以看到.feature.cs文件。

答案 3 :(得分:0)

我在Visual Studio 2019中也遇到了同样的问题,我设法通过添加以下nuget包来修复:- SpecFlow, SpecFlow.Tools.MsBuild.Generation, SpecRun.SpecFlow

答案 4 :(得分:-1)

如果您想进行测试 - 由Specflow生成的单元测试,只是为了精确 - 在您的单元测试资源管理器中显示,您必须创建单元测试项目。如果您创建了一个类库项目,那么您将看不到它们。

Here您可以找到有关如何将类库项目转换为单元测试项目的信息。