如何找到未使用的黄瓜步骤

Pet*_*own 22 bdd ruby-on-rails cucumber

我和Cucumber一起工作了大约一年,并且一直在不断重构功能和步骤定义.我在许多文件中定义了大量的步骤,我不禁觉得不再需要其中许多文件.有没有办法找到哪些黄瓜步骤定义不再使用?

And*_*ite 36

stepdefs格式化程序可以执行此操作,例如:

cucumber --dry-run -f stepdefs
Run Code Online (Sandbox Code Playgroud)

对于任何非比赛,它将打印"不符合任何步骤".

如果您有任何由其他步骤使用的步骤,则省略--dry-run以获得准确的结果.使用时--dry-run,不执行步骤,黄瓜也不会发现实际使用了所引用的步骤.

  • 你能详细说明需要移动的东西吗?我得到了相同的未初始化的常量错误,但是有了水豚. (5认同)
  • 我昨晚在黄瓜书中发现了这一点,显然它没有加载env.rb文件,这解释了为什么事情失败了.在移动物体后我能够让它运行,这正是我想要的.谢谢! (2认同)
  • 为了修复@PeterBrown 提到的错误,我在 `features/support/` 中按字母顺序将 `require_relative "env"` 添加到第一个文件的顶部(我猜 Cucumber 出于某种原因按字母顺序加载支持文件) (2认同)

Fre*_*ung 5

您可以尝试在诸如simplecov之类的覆盖工具下运行您的故事 .

默认情况下,它可能会排除测试代码,例如黄瓜步骤,因为通常人们对覆盖了多少应用程序代码而不是测试代码的数量感兴趣,但这应该很容易反转.