SpecFlow:“步骤绑定仍在分析中。请稍候。”

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

每当我右键单击场景并“生成步骤定义”或“转到步骤定义”时,我都会收到相同的消息。

我第一次尝试时有效,但此后就没有了。

我已经提交了错误报告,但与此同时,有人知道如何解决这个问题吗?

c# visual-studio bdd specflow
9个回答
6
投票

五年多后,我遇到了同样的问题......这是对我有用的解决方案:

  1. 在 Visual Studio 中关闭解决方案。
  2. 转到 Windows 资源管理器中的临时目录(在位置栏中输入 %temp%)。
  3. 删除“specflow-blah-blah.cache”文件。
  4. 在 Visual Studio 中重新加载解决方案,重建解决方案并给 SpecFlow 一些时间来自行整理。

1
投票

我以前遇到过这个问题,我们在一个项目中进行了大约 800 次 SF 测试,当我们第一次加载时,有时可能需要相当长的时间才能加载。对我来说,它最终总是会自行解决。

另一件事是升级到几天前发布的1.9,它可能会提高性能。


1
投票

虽然我使用的是最后一个(1.9.2),但我遇到了同样的问题。重新打开VS2010解决了问题。


1
投票

我找到了解决这个问题的方法;关闭解决方案并删除 .SOU 文件。重新打开解决方案,然后重新创建此文件,然后 SpecFlow 上下文菜单选项即可工作。


0
投票

当我将外部程序集从 app.config 移动到 specflow.json 文件时,我遇到了同样的问题

1)结果我得到了一个程序集参考,它甚至没有specflow nugets。

2)我重命名了一个程序集,但由于某些原因,旧名称没有在 AssemblyInfo.cs 文件中替换。我手动更改了它,清理了项目。清理了specflow缓存(请参阅之前的答案如何执行此操作)并且它有效。

因此,检查所有引用和程序集名称是否正确。

干杯

附注不要忘记为specflow.json设置“复制到输出目录”选项:D


0
投票

如果您仍然无法强制绑定步骤,但只需要获取给定步骤的定义

  1. 在场景的第一步放置断点
  2. 调试测试
  3. 单步进入功能(默认F11)
  4. 你来了! VS 导航可能不起作用,但调试器知道方法:)

我知道这可能不是原始问题的直接解决方案,步骤不具有约束力,但我认为它达到了OP想要去的地方......


0
投票

此问题的根本原因是您的代码性能较差,导致 Visual Studio 速度缓慢并挂起,或者由于代码性能较低,Visual Studio 处于无响应状态。

解决方案是提高代码的性能。您需要以所有可能的方式优化您的代码:

  1. 在每个步骤中使用更少的输入
  2. 在参数化方法中使用更少的参数
  3. 避免不必要的循环
  4. 如果参数数量超过5个,请将数量参数分成更多的方法。它将提高性能。
  5. 将输入值分成更多的子步骤或单独的步骤,这将提高代码的性能和速度。
  6. 如果情况较多,请使用 switch case 代替 if else 语句。
  7. 如果引用变量或对象不再使用,则释放占用的内存。
  8. 从外部源读取数据并将其存储到本地对象或列表中,并最小化使其一次性从外部源读取一次并访问列表或任何其他对象/变量中本地复制的值。
  9. 关闭或退出外部文件或使用后调用它们。

希望这是提高代码性能的最佳方法,并且这个问题肯定不会发生,并且您的步骤绑定和定义将更加顺利和容易。


0
投票

我们是这样修复的:

  1. 关闭视觉工作室
  2. 删除了项目下的
    obj
    bin
    文件夹,
  3. 再次打开 Visual Studio。
  4. 重建

之后

.feature
文件“复活了”


0
投票

1)下载Visual Studio。在安装过程中,选择不存在当前 Visual Studio 文件的其他位置。

  1. 安装 Visual Studio 后,打开项目,然后安装 Spec Flow。

  2. 安装 Spec Flow 后,执行 Clean 解决方案并重建项目。

  3. 关闭 Visual Studio。

  4. 删除“bin”和“obj”目录中调试文件夹中的所有数据。

  5. 重新打开 Visual Studio 并等待几分钟,直到加载所有测试文件。

  6. 现在执行清理解决方案并再次重建项目。

  7. 从项目中选择任何 Spec Flow 文件并尝试单步进入定义文件。

  8. 步骤绑定仍在分析中。将不会显示请稍候消息。用户将位于步骤定义文件中。

© www.soinside.com 2019 - 2024. All rights reserved.