首页 > 解决方案 > 如何从现有 BDD Cucumber 框架的 Runner 类中提供的 Package Name 跟踪 stepDefinition 类文件

问题描述

我刚搬到 BDD Cucumber 的一个新项目。我面临的问题是:

我想跟踪作为功能文件后端代码的 StepDefinition 脚本。
目前我们只在胶水下的 runner 类中提到包名。

在同一个(StepDefinition)包下的40到50个StepDefinition文件中,如何追踪这个功能写在哪个StepDefinition文件中?

请帮忙

标签: eclipseselenium-webdriverautomationcucumberbdd

解决方案


由于您的问题没有提及您使用哪种编程语言,所以我不知道哪些工具可用。

如果您使用的是 JVM 语言,我建议您使用带有 Cucumber for Java 插件的 IntelliJ IDE。这允许您单击功能文件中的步骤并转到相应的步骤定义,就像您可以从调用站点导航到方法实现一样。

更新:如果您使用的是 Eclipse(根据下面用户的评论),Eclipse 的 Cucumber 插件也应该提供此功能(更多信息在这里.

您的问题意味着在特定步骤定义文件中实现了特定功能。这实际上被认为是 Cucumber 中的一种反模式:请参阅 Cucumber docs on anti-patterns

为了能够找到您的步骤定义,建议“以有意义的方式”对它们进行分组。什么是“有意义的”将取决于您的上下文。例如,我目前的团队有一项服务,该服务将来自其他几个后端服务的数据与它们自己的特定域/域对象聚合在一起;我们已经根据底层服务/域对我们的步骤定义进行了分组。假设该服务汇总了有关订单的信息;我们有以下步骤定义文件:

  • 与我们自己的系统(聚合器)交互
  • 从订单系统获取(或模拟/存根)订单
  • 从产品服务中获取有关订单中产品的信息
  • 从物流服务等处获取有关订单发货的信息。

通过以对您和您的团队有意义的方式对步骤定义进行排序,每个人都可以更轻松地找到步骤定义/知道在哪里添加新定义等。

最后,您是否与您的团队讨论过如何对步骤定义进行分组以及为什么?那应该可以帮助您理解。(有时问题不是用工具解决的技术问题,而是应该通过相互交谈来解决的通信问题)


推荐阅读