【问题标题】:How to detect unused step definitions in cucumber-jvm junit project?如何检测 cucumber-jvm junit 项目中未使用的步骤定义?
【发布时间】:2020-01-13 20:32:19
【问题描述】:

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

【问题讨论】:

标签: java junit cucumber-jvm cucumber-junit cucumber-java


【解决方案1】:

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

对于黄瓜junit runner,它可能看起来像这样:

@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

【讨论】:

    【解决方案2】:

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

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

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

    1) 具有特定于特定功能/模块的功能文件和相应的步骤定义文件。 2) 将泛型方法保存在泛型父步骤定义文件中。

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

    【讨论】:

      【解决方案3】:

      IntelliJ 的黄瓜插件可以搜索步骤定义的用法。它不会一次性给你所有未使用的,但至少你可以一一检查个人使用情况。 IDEA 社区版也提供该插件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-21
        • 2022-08-19
        • 2019-06-07
        相关资源
        最近更新 更多