Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# specflow 3和nunit有什么问题?_C#_Visual Studio 2017_Nunit_Specflow - Fatal编程技术网

C# specflow 3和nunit有什么问题?

C# specflow 3和nunit有什么问题?,c#,visual-studio-2017,nunit,specflow,C#,Visual Studio 2017,Nunit,Specflow,我正在尝试使用Visual Studio 2017在C#中设置一个基本项目,该项目使用specflow 3和nunit运行测试。我以前使用过specflow版本2.4.1,安装和运行测试都很简单。但是,在尝试使用nunit设置specflow 3时,我不断出现错误 我尝试了以下步骤: 我得到的最远的结果是下面的错误 [SpecFlow]系统。异常:已设置单元测试提供程序 此外,我的代码隐藏未生成,但我已安装nuget软件包SpecFlow.Tools.MsBuild.Generation,该软件

我正在尝试使用Visual Studio 2017在C#中设置一个基本项目,该项目使用specflow 3和nunit运行测试。我以前使用过specflow版本2.4.1,安装和运行测试都很简单。但是,在尝试使用nunit设置specflow 3时,我不断出现错误

我尝试了以下步骤:

我得到的最远的结果是下面的错误

[SpecFlow]系统。异常:已设置单元测试提供程序

此外,我的代码隐藏未生成,但我已安装nuget软件包SpecFlow.Tools.MsBuild.Generation,该软件包应生成功能文件的后端


有人知道我如何让一个C#项目使用Specflow 3和Nunit吗?

我在添加Specflow.xunit nuget包和Specflow+runner nuget包时遇到了这个问题。删除specflow+runner包使我能够使用xunit构建和运行测试。

在添加specflow.xunit nuget包和specflow+runner nuget包时,我遇到了这个问题。删除specflow+runner包使我能够使用xunit构建和运行测试。

检查app.config并删除引用specflow和nunit的节点。
也可以转到现有的.feature文件,右键单击“属性”。将自定义工具留空。

检查app.config并删除引用specflow和nunit的节点。
也可以转到现有的.feature文件,右键单击“属性”。将自定义工具留空。

SpecFlow 3不再使用app.config。您需要使用specflow.json文件,这是必需的

确保包含以下Nuget库:

  • Microsoft.NET.Test.Sdk
  • 努尼特
  • SpecFlow
  • SpecFlow.NUnit
  • SpecFlow.Tools.MsBuild.Generation
确保您创建了一个基本的specflow.json文件

{ “绑定文化”: { “语言”:“en us” }, “语言”: { “功能”:“en us” }, “插件”:[] }


。。。而且你应该准备好了。

SpecFlow 3不再使用app.config。您需要使用specflow.json文件,这是必需的

确保包含以下Nuget库:

  • Microsoft.NET.Test.Sdk
  • 努尼特
  • SpecFlow
  • SpecFlow.NUnit
  • SpecFlow.Tools.MsBuild.Generation
确保您创建了一个基本的specflow.json文件

{ “绑定文化”: { “语言”:“en us” }, “语言”: { “功能”:“en us” }, “插件”:[] }


。。。您应该可以开始了。

@Nkosi您可能已经安装了多个单元测试提供程序包。 删除任何与specflow相关的软件包,如specflow.specrun、specrun.runner软件包,并确保已安装以下软件包(如果已存在),然后重新安装

  • 努尼特
  • NUnit3TestAdapter
  • SpecFlow
  • SpecFlow,Nunit
  • SpecFlow.Tools.MsBuild.Generation
并从功能文件属性中的“自定义工具”字段中删除“SpecFlowSingleFileGenerator”

根据spcflow文档将此目标添加到项目文件中


然后,您可以在“测试资源管理器”窗格中查看测试。我遇到了类似的问题,但我确实按照上面提到的方法重新安装了软件包,解决了这些问题。希望这对您有所帮助

@Nkosi您可能已经安装了多个单元测试提供程序包。 删除任何与specflow相关的软件包,如specflow.specrun、specrun.runner软件包,并确保已安装以下软件包(如果已存在),然后重新安装

  • 努尼特
  • NUnit3TestAdapter
  • SpecFlow
  • SpecFlow,Nunit
  • SpecFlow.Tools.MsBuild.Generation
并从功能文件属性中的“自定义工具”字段中删除“SpecFlowSingleFileGenerator”

根据spcflow文档将此目标添加到项目文件中


然后,您可以在“测试资源管理器”窗格中查看测试。我遇到了类似的问题,但我确实按照上面提到的方法重新安装了软件包,解决了这些问题。希望这对您有所帮助

@Nkosi-我遇到了与您描述的问题相同的错误消息。但是在我的例子中,我使用的是MSTest unittest和SpecRun.SpecFlow。我就是这样解决我的问题的

  • 由于我们使用MSTest,我们安装了以下与MSTest相关的nuget软件包(MSTest.TestAdapter&MSTest.TestFramework),还安装了SpecFlow.MSTest。我继续从nuget package manager及其依赖项卸载了所有这些nugetpackages
  • 现在单独安装SpecRun.Runner包,该包将内置其他依赖项。正如下面突出显示的,它也有SpecRun.NUnit包。

  • 现在重新构建项目,您应该能够看到在测试资源管理器窗口中编写的Specflow测试。

    @Nkosi-我遇到了与您描述的相同问题,并显示了相同的错误消息。但是在我的例子中,我使用的是MSTest unittest和SpecRun.SpecFlow。我就是这样解决我的问题的

  • 由于我们使用MSTest,我们安装了以下与MSTest相关的nuget软件包(MSTest.TestAdapter&MSTest.TestFramework),还安装了SpecFlow.MSTest。我继续从nuget package manager及其依赖项卸载了所有这些nugetpackages
  • 现在单独安装SpecRun.Runner包,该包将内置其他依赖项。正如下面突出显示的,它也有SpecRun.NUnit包。

  • 现在重新构建项目,您应该能够看到在测试资源管理器窗口中编写的Specflow测试。

    将您的项目与TechTalk提供的测试进行比较。确保您拥有所有必要的软件包,并且项目文件看起来正确无误