>我遇到测试资源管理器中未显示测试的问题,我创建了一个功能文件并生成了步骤定义,我安装了以下软件包
- SpecFlow-3.1.97
- SpecFlow.Tools.MsBuild.Generation- 3.1.97
- SpecRun.SpecFlow.3-1-0
我还尝试从 %TEMP% 文件夹中删除任何与规范流相关的内容,但没有帮助,而且我有不同的项目,我已经设置了规范流并且一切正常。
注意:没有 - SpecRun.SpecFlow.3-1-0 包,测试确实被破坏了,但我收到以下错误
OneTimeSetUp: BoDi.ObjectContainerException : Interface cannot be resolved: TechTalk.SpecFlow.UnitTestProvider.IUnitTestRuntimeProvider('nunit')
您会收到此错误,因为在删除SpecRun.SpecFlow.3-1-0
包后,您没有任何包来配置使用的单元测试运行程序。
必须将以下包之一添加到规范项目(包含测试的项目(中,以选择单元测试提供程序:
- SpecRun.Runner => for SpecFlow+ Runner
- SpecFlow.xUnit => for xUnit
- SpecFlow.MsTest => for MSTest
- SpecFlow.NUnit => for NUnit
从 https://specflow.org/2019/updating-to-specflow-3/
你在Visual Studio中发现了一些东西,因为它有自己的测试发现。但是当您执行它们时,这与您无关。我们需要 NuGet 包中的内容来执行方案。