如何使用NUnit 3.11配置Specflow 3.0.199?

问题描述 投票:0回答:2

我之前已经做了几次,但今天没有用。我错过了什么吗?

我想使用NUnit从scract配置Specflow并在Visual Studio中执行。我见过很多教程,但他们对我不起作用:P。我正在尝试使用最新版本。

这些是我在Visual Studio 2017上执行的步骤:

  • 创建测试项目(.NET Framework)
  • 安装Visual Studio的Specflow插件(工具>扩展和更新)
  • 从nuget包中删除MSTests的引用。
  • 安装SpecFlow 3.0.199
  • 安装NUnit 3.11
  • 安装SpecRun.Runner 3.0.284

创建默认功能文件并生成其步骤后,当我编译解决方案时,我在CalculatorFeature.feature.cs(生成的文件)上收到此错误:

enter image description here

这就像那些配置不兼容。这是怎么回事?如果您有另一个分步列表,请告诉我如何使用NUnit配置Specflow以在Visual Studio 2017上运行。

visual-studio cucumber nunit bdd specflow
2个回答
1
投票

对于SpecFlow 3,您必须使用MSBuild生成。

为此,请按照以下两个步骤操作:

  1. 将具有与SpecFlow相同版本的NuGet包SpecFlow.Tools.MsBuild.Generation添加到项目中
  2. 从功能文件中删除所有SpecFlowSingleFileGenerator自定义工具条目。

来自https://specflow.org/2019/generating-code-behind-files-using-msbuild/

背景发生了什么:

VS扩展有时会遇到问题,无法找到使用过的SpecFlow版本。在这种情况下,它会回退到扩展附带的SpecFlow版本(这是非常老的)。此版本生成的代码现在不存在NUnit属性。


0
投票

TestFixtureSetUpTestFixtureTearDown属性已被弃用了相当长的一段时间,并最终被删除。他们被OneTimeSetUpOneTimeTearDown取代。

你的选择可能是......

  1. 返回支持旧属性的NUnit版本。
  2. 获取使用新属性的SpecFlow版本。
  3. 找到一种配置SpecFlow并告诉它使用新属性的方法。对不起,但这个选项毫无疑问是最好的,是我的驾驶室。
© www.soinside.com 2019 - 2024. All rights reserved.