6

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

我第一次尝试时它起作用了,但从那以后就没有了。

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

4

8 回答 8

6

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

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

I've found a work around for this problem; close the solution and delete the .SOU file. Re-opening the solution then re-creates this file and the SpecFlow context menu options then work.

于 2013-09-23T16:19:09.500 回答
1

ive gotten this issue before, we have about 800 SF tests in one of our projects and when we first load it can sometimes take quite a lot of time for it to load up. For me its always sorted itself out eventually.

Another thing to try would be to upgrade to 1.9 which came out a few days ago, it may have improved performance.

于 2012-08-08T10:43:47.503 回答
1

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

于 2013-09-23T08:20:38.310 回答
0

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

1)原来我得到了一个甚至没有specflow nugets的程序集参考。

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

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

干杯

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

于 2019-08-13T03:32:53.140 回答
0

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

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

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

于 2020-01-10T14:55:39.750 回答
0

我们这样修复它:

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

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

于 2021-07-08T08:32:00.290 回答
0

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

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

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

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

于 2021-05-12T16:00:53.070 回答