eclipse - 如何从现有 BDD Cucumber 框架的 Runner 类中提供的 Package Name 跟踪 stepDefinition 类文件
问题描述
我刚搬到 BDD Cucumber 的一个新项目。我面临的问题是:
我想跟踪作为功能文件后端代码的 StepDefinition 脚本。
目前我们只在胶水下的 runner 类中提到包名。
在同一个(StepDefinition)包下的40到50个StepDefinition文件中,如何追踪这个功能写在哪个StepDefinition文件中?
请帮忙
解决方案
由于您的问题没有提及您使用哪种编程语言,所以我不知道哪些工具可用。
如果您使用的是 JVM 语言,我建议您使用带有 Cucumber for Java 插件的 IntelliJ IDE。这允许您单击功能文件中的步骤并转到相应的步骤定义,就像您可以从调用站点导航到方法实现一样。
更新:如果您使用的是 Eclipse(根据下面用户的评论),Eclipse 的 Cucumber 插件也应该提供此功能(更多信息在这里.
您的问题意味着在特定步骤定义文件中实现了特定功能。这实际上被认为是 Cucumber 中的一种反模式:请参阅 Cucumber docs on anti-patterns
为了能够找到您的步骤定义,建议“以有意义的方式”对它们进行分组。什么是“有意义的”将取决于您的上下文。例如,我目前的团队有一项服务,该服务将来自其他几个后端服务的数据与它们自己的特定域/域对象聚合在一起;我们已经根据底层服务/域对我们的步骤定义进行了分组。假设该服务汇总了有关订单的信息;我们有以下步骤定义文件:
- 与我们自己的系统(聚合器)交互
- 从订单系统获取(或模拟/存根)订单
- 从产品服务中获取有关订单中产品的信息
- 从物流服务等处获取有关订单发货的信息。
通过以对您和您的团队有意义的方式对步骤定义进行排序,每个人都可以更轻松地找到步骤定义/知道在哪里添加新定义等。
最后,您是否与您的团队讨论过如何对步骤定义进行分组以及为什么?那应该可以帮助您理解。(有时问题不是用工具解决的技术问题,而是应该通过相互交谈来解决的通信问题)
推荐阅读
- c# - 使用 3 个不同的打印按钮在同一页(同一表格)上分配 3 台不同的打印机
- python - 在 Python 中减去两列数组
- json - 在 go 中比较两个 JSON
- php - 从不同的主机 php 连接 Google Cloud SQL
- r - R:组内唯一值的计数
- python - 如何在 django 中检查对象是否过期?
- parse-server - 当我将对象添加到已经存在的关系时,解析服务器从关系中删除对象
- javascript - 如何使用输入值通过 js 或 jquery 范围游标指针值
- python-3.x - sre_constants.error 来自 spacy 的错误 en_core_web_sm
- firebase - 我的 Flutter App 的 Cache 文件夹没有在手机的内部存储中创建?