【问题标题】:Specflow Binding from External Assembly always purple来自外部组件的 Specflow 绑定始终为紫色
【发布时间】:2017-09-17 14:19:48
【问题描述】:

我在外部程序集中有绑定(根据 specflow 文档here
我们需要这个,因为我们正在制作一个通用的步骤定义库,可以在我们的任何测试套件中使用。
它可以工作,但是某些 specflow 功能似乎不起作用。
即:
所有步骤都以紫色突出显示(表示无法与绑定匹配)
如果您选择一个步骤并按 F12 或右键单击并选择“转到步骤定义”,它会说找不到匹配的绑定。
但是,代码运行正常,如果调试的话,可以从特征文件单步进入步骤定义文件,所以看来问题出在Specflow插件上,不是nuget包上的?
有谁知道如何解决这个问题?
我上传了视频here中使用的测试SLN。

【问题讨论】:

标签: visual-studio specflow


【解决方案1】:

您需要清除 Temp 文件夹中的 SpecFlow .cache 文件。

在 Windows 资源管理器中,转到 %TEMP%,然后找到并删除您的 .cache 文件。它将具有“specflow-stepmap-[projectname].cache”的模式。重新启动 Visual Studio,将重新计算定义并创建新的 .cache。

【讨论】:

  • 我发现通过使用VS2015这个问题没有发生,我仍然安装了VS2013,所以我会在周末尝试在VS2013上重现这个问题,看看它是否可以解决它,感谢输入!
  • 想一想,这是否与其他类似问题有关 - 例如,我有时会在同一个项目中的步骤定义文件中看到这一点。我们所做的正常修复是编辑其中一个定义的正则表达式(在末尾放置一个空格,删除它,保存),但我想知道这是否也可能是另一种解决方案。
  • 如果清除.cache文件后仍然无法介入,可以删除所有自动生成的.feature.cs文件,右键项目->“重新生成特征文件”,然后清除。再次缓存文件。
【解决方案2】:

解决步骤

  1. 删除步骤定义中的 [Binding] 属性并保存文件
  2. 再次原样添加[Binding]属性并保存步骤定义文件
  3. 现在编译解决方案,希望它能得到解决方案

【讨论】:

    【解决方案3】:

    对我来说,重新启动 Visual Studio 并再次打开解决方案就可以了。

    【讨论】:

      【解决方案4】:

      就我而言,SpecFlow 是因为我必须在第一次打开 *.feature 文件之前构建项目。这发生在一个新克隆的 repo 上,即使没有外部程序集。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-24
        • 1970-01-01
        • 2016-03-25
        • 1970-01-01
        • 2021-04-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多