【问题标题】:Specflow designer generated code is using old specFlow 1.9.0.77Specflow 设计器生成的代码使用旧的 specFlow 1.9.0.77
【发布时间】:2019-07-26 13:09:43
【问题描述】:

我的项目中有以下 Nuget 包。 Specflow v2.4.1 Nunit v3.11 Nunit 测试适配器 v3.12

当我添加或修改功能文件时,specFlow 正在创建/修改设计器生成的文件,以某种方式引用旧版本的 specFlow。

using TechTalk.SpecFlow;   

[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.9.0.77")]

因此,我遇到了构建错误并且测试不再运行。

检查问题时,我注意到 TestTalk.SpecFlow.dll 指向 bin/debug 文件夹。当我关闭解决方案并从 bin/debug 文件夹中删除所有文件时,引用路径更改为 packages 文件夹,然后设计器生成的代码正在选择正确的 specflow 版本。

执行构建解决方案操作后问题再次出现(现在 Techtalk.specFlow.dll 指的是 bin/debug 文件夹)

我已尝试删除设计器生成的代码并再次运行自定义工具,但仅当从 bin/debug 文件夹中删除 DLL 时问题才解决。

我什至尝试将文件生成背后的代码设置更改为 AppDomain 或 Out of process,但问题仍然存在。

请帮助解决问题,而不是每次都删除文件。谢谢。

【问题讨论】:

  • 请在github.com/techtalk/SpecFlow上打开一个问题
  • 不久前我遇到了类似的问题。我不记得究竟是如何修复它的,但我的测试项目的包文件夹中有多个版本的 SpecFlow。除了我在 packages.config 中指定的最新 specflow 版本之外,我不得不删除所有 specflow 包。

标签: c# selenium nunit specflow


【解决方案1】:

我通过降级 NUnit 和 SpecFlow 解决了这个问题。

• Nunit.Framework:3.4.1 • 规范流:2.3.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2014-11-16
    • 2021-03-28
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多