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

时间:2012-08-08 10:38:59

标签: c# visual-studio bdd specflow

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

这是我第一次尝试,但从那时起就没有。

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

8 个答案:

答案 0 :(得分:1)

我之前已经遇到过这个问题,我们在其中一个项目中进行了大约800次SF测试,当我们第一次加载它时,有时需要花费很多时间来加载它。对我来说,它总是最终自行解决。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

五年多以后,我遇到了同样的问题......以下是适合我的解决方案:

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

答案 4 :(得分:0)

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

1)原来我得到了一个甚至没有specflow nuget的程序集引用。

2)我重命名了一个程序集,但是由于某些原因,旧名称未替换 AssemblyInfo.cs 文件中。我手动更改它,清理了项目。清理了specflow缓存(请参阅前面的答案如何做到这一点)并且有效。

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

欢呼

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

答案 5 :(得分:0)

如果仍然无法强制绑定步骤,而只需获得给定步骤的定义

  1. 在场景的第一步放置一个断点
  2. 调试测试
  3. 进入功能(默认为F11)
  4. 您来了! VS导航可能无法正常工作,但调试器知道方法:)

我知道这可能不是解决不绑定步骤的原始问题的直接解决方案,但我认为这可以满足OP的要求...

答案 6 :(得分:0)

此问题的根本原因是您的代码性能不佳,这会导致您的 Visual Studio 运行缓慢并挂起,或者由于代码性能低下 Visual Studio 处于无响应状态。

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

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

希望这是提高代码性能的最佳方式,这个问题肯定不会发生,您的步骤绑定和定义会更加流畅和简单。

答案 7 :(得分:0)

我们是这样修复的:

  1. 关闭 Visual Studio
  2. 删除了项目下的 objbin 文件夹,
  3. 再次打开 Visual Studio。
  4. 重建

此后,.feature 文件“恢复生机”