我使用 Cucumber 已有大约一年的时间,并且一直在不断重构功能和步骤定义。我在许多文件中定义了大量步骤,但我忍不住觉得其中许多步骤不再需要。有没有办法找到哪些黄瓜步骤定义不再被使用?
stepdefs 格式化程序可以做到这一点,例如:
cucumber --dry-run -f stepdefs
对于任何不匹配的情况,它将打印“NOT MATCHED BY ANY STEPS”。
如果您有任何步骤仅被其他步骤使用,则省略
--dry-run
以获得准确的结果。使用 --dry-run
,这些步骤不会被执行,并且 cucumber 不会发现实际使用了所引用的步骤。
您可以尝试在覆盖工具(例如 simplecov)下运行您的故事。
默认情况下,它可能会排除测试代码,例如黄瓜步骤,因为通常人们感兴趣的是覆盖了多少应用程序代码,而不是多少测试代码,但这应该很容易逆转。
对于我来说
cucumber-js --dry-run --format usage
完成了工作。
输出打印类似于
│ some feature test name │ UNUSED │ src\step_definitions\team-edit-steps.ts:24│
我尝试使用 cucumber-js --dry-run --format 用法,但结果是“没有步骤定义”。例如,我是否错过了某些配置,或者是否必须将路径指向某些特定步骤定义文件或包含所有步骤定义的文件夹?我正在使用 webdriverio 作为一项技术。