0

我有一个问题,我的测试没有显示在测试资源管理器中,我创建了一个功能文件并生成了步骤定义,我安装了以下包

 - SpecFlow-3.1.97
 - SpecFlow.Tools.MsBuild.Generation- 3.1.97
 - SpecRun.SpecFlow.3-1-0

我还尝试从 %TEMP% 文件夹中删除与 specflow 相关的任何内容,但这没有帮助,而且我有不同的项目,我在其中设置了 specflow 并且一切正常。

注意:如果没有 - SpecRun.SpecFlow.3-1-0 包,测试确实会被发现,但我收到以下错误

OneTimeSetUp: BoDi.ObjectContainerException : Interface cannot be resolved: TechTalk.SpecFlow.UnitTestProvider.IUnitTestRuntimeProvider('nunit')
4

1 回答 1

1

您会收到此错误,因为在您删除SpecRun.SpecFlow.3-1-0包后,您没有更多的包来配置使用的单元测试运行器。

必须将以下软件包之一添加到您的规范项目(包含您的测试的项目)以选择您的单元测试提供者:

  • SpecRun.Runner => 用于 SpecFlow+ Runner
  • SpecFlow.xUnit => 用于 xUnit
  • SpecFlow.MsTest => 用于 MSTest
  • SpecFlow.NUnit => 用于 NUnit

来自https://specflow.org/2019/updating-to-specflow-3/

你会在 Visual Studio 中发现一些东西,因为它有自己的测试发现。但这与您执行它们时无关。我们需要 NuGet 包中的东西来执行场景。

于 2020-05-26T12:52:58.723 回答