SpecRun- 测试未显示在测试资源管理器中

SpecRun- Tests are not showing in Test Explorer

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

 - 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')

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

必须将以下包之一添加到您的规范项目(包含您的测试的项目)到 select 您的单元测试提供商:

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

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

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