我正在尝试使用Visual Studio 2017在C#中设置一个基本项目,该项目使用Specflow 3和nunit运行测试。我以前使用过Specflow版本2.4.1,并且设置和运行测试非常容易。但是,尝试使用nunit设置specflow 3时,我总是收到错误消息。
我尝试按照此处的步骤操作:https://specflow.org/getting-started/
我得到的最大的错误是以下错误。
[SpecFlow] System.Exception:单元测试提供程序已设置。
我后面的代码也没有生成,但是我安装了nuget包SpecFlow.Tools.MsBuild.Generation,该包应该生成功能文件的后端。
任何人都知道如何使Specflow 3和Nunit进入C#项目吗?
答案 0 :(得分:1)
@Nkosi-我遇到了与您所描述的问题相同的错误消息。但是,就我而言,我使用的是MSTest unittest和SpecRun.SpecFlow。这就是我解决问题的方式。
现在重新构建项目,您应该能够看到在Test Explorer窗口中编写的Specflow测试。
答案 1 :(得分:0)
同时添加specflow.xunit nuget包和specflow + Runner nuget包时,我遇到了这个问题。删除specflow + Runner程序包使我能够使用xunit进行构建和运行测试。
答案 2 :(得分:0)
检查您的app.config并删除引用specflow和nunit的节点。 也可以转到现有的.feature文件,右键单击“属性”。将“自定义工具”留空。
答案 3 :(得分:0)
SpecFlow 3不再使用app.config。您需要使用强制性的specflow.json文件。
确保您包含以下Nuget库:
确保您创建了基本的specflow.json文件...
{ “ bindingCulture”: { “ language”:“ zh-cn” }, “语言”: { “功能”:“ zh-cn” }, “插件”:[] }
...,您应该会很好。
答案 4 :(得分:0)
@Nkosi您可能已经安装了多个单元测试提供程序包。 删除所有与specflow相关的文件,例如specflow.specrun,specrun.runner程序包,并确保已安装以下程序包(如果已存在),请重新安装。
然后从功能文件属性中“自定义工具”字段中删除“ SpecFlowSingleFileGenerator”。
根据spcflow文档https://specflow.org/2019/updating-to-specflow-3/
将此目标添加到项目文件中然后您可以在“测试资源管理器”窗格中查看测试。我遇到了类似的问题,但是我确实按照上面提到的解决问题的方式重新安装了程序包。希望有帮助!