Java 如何在junit项目中检测未使用的步骤定义?

Java 如何在junit项目中检测未使用的步骤定义?,java,junit,cucumber-jvm,cucumber-junit,cucumber-java,Java,Junit,Cucumber Jvm,Cucumber Junit,Cucumber Java,我正在使用cucumber junit项目运行自动化测试,我的项目中大约有200个场景。。现在的问题是,在我的项目中很难找到未使用的步骤定义,因为我们需要不断更新功能。。是否存在检测不再有用的步骤定义的解决方案。。非常感谢任何帮助 IntelliJ的cucumber插件可以搜索步骤定义的用法。它不会一次性提供所有未使用的功能,但至少可以逐个检查各个功能的使用情况。IDEA的社区版中也提供了该插件。在某些情况下,单个步骤可以是不同场景的一部分,并且仅在步骤定义中具有单个方法。因此,在使用“cucu

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

IntelliJ的cucumber插件可以搜索步骤定义的用法。它不会一次性提供所有未使用的功能,但至少可以逐个检查各个功能的使用情况。IDEA的社区版中也提供了该插件。

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

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

也许,唯一可行的方法是以模块化方式设计应用程序:

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


因此,以模块化的方式设计应用程序可以很容易地让您确定可以从步骤定义中删除的未使用方法。

由于cucumber jvm 4.4.0,因此可以使用cucumber jvm内置插件-未使用

对于cucumber 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中找到

原始拉取请求:

也许这会有所帮助