如何检测 cucumber-jvm junit 项目中未使用的步骤定义?

How to detect unused step definitions in cucumber-jvm junit project?

我正在 运行 使用 cucumber-junit 项目进行自动化测试,我的项目中大约有 200 个场景。现在的问题是,很难在我的项目中找到未使用的步骤定义,因为我们经常需要更新功能。是否有任何解决方案来检测不再有用的步骤定义。非常感谢任何帮助!!

IntelliJ 的 cucumber 插件可以搜索步骤定义的用法。它不会一次性给你所有没用过的,但至少你可以一一查看个人的使用情况。该插件在 IDEA 的社区版中也可用。

在某些情况下,单个步骤可以是不同场景的一部分,并且在步骤定义中只有一个方法。因此,在使用 'cucumber feature' 插件执行特征文件时,很容易将特征文件的步骤映射到相应的方法。

但是,从字面上看,不可能从步骤定义文件中交叉验证相同的文件来识别特征文件数量中的单个步骤。

也许,唯一可能的出路是以模块化方式设计您的应用程序:

1) 具有针对特定 feature/module 的功能文件和相应的步骤定义文件。 2) 将通用方法保存在通用父步骤定义文件中。

因此,以模块化方式设计应用程序可以轻松地引导您识别可以从步骤定义中删除的未使用方法。

从 cucumber-jvm 4.4.0 开始,可以使用内置插件的 cucumber-jvm - 未使用。

对于 cucumber junit 运行ner 它可能看起来像这样:

@RunWith(Cucumber.class)
@CucumberOptions(
    plugin = {
        "json:build/report/cucumber.json",
        "unused:build/report/usage.txt"} //mind this plugin
    glue = "stepdefs",
    features = "features"
)
public class CucumberRunner {
}

在 运行 之后未使用的 stepdef 应该在 build/report/usage.txt

中找到

原始拉取请求:https://github.com/cucumber/cucumber-jvm/pull/1648