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

Sam*_*Sam 6 specflow visual-studio-2015

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

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

<specFlow>
  <unitTestProvider name="NUnit" />
</specFlow>
Run Code Online (Sandbox Code Playgroud)

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

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

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

And*_*ich 11

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

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


Say*_*ndo 0

如果您希望您的测试(由 Specflow 生成的单元测试,只是为了精确起见)显示在您的单元测试资源管理器中,您必须创建单元测试项目。如果您创建了类库项目,那么您将看不到它们。

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

  • 仅当您使用 MsTest 作为测试框架时,使用单元测试项目模板才有帮助,因为该模板已经引用了它。如果您使用其他东西,则没有帮助。 (2认同)