You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gherkin 22-24.0.0(Cucumber-gherkin7.8.0)移除方法替代方案咨询

问题:Cucumber升级后Gherkin相关方法的替代方案

我将pom.xml中的{cucumber.version}从7.0.0升级至7.8.0后,发现以下两个方法被移除:

Gherkin.fromSources:Gherkin 22.0.0后被移除,24.0.0版本中已无该方法
makeSourceEnvelope(String data, String uri):同一版本(Gherkin 22.0.0+)中被移除

我正通过TestSourcesModel.java生成BDD报告,当前遇到两个编译错误:
第一个错误:

Multiple markers at this line
    - The method makeSourceEnvelope(String, String) is undefined for the type 
     TestSourcesModel

第二个错误:

Gherkin cannot be resolved

我已查阅Gherkin最新API文档、Maven依赖库资料,但仍未找到替代方案,请问最新版本中这两个方法的替代方案是什么?


解决方案

针对这两个被移除的方法,最新版本的替代方式如下:

  1. 替代Gherkin.fromSources
    Gherkin 22.0.0+版本中Gherkin类已被弃用,需改用GherkinParser完成Gherkin源文件解析,示例代码如下:
// 初始化解析器实例
GherkinParser parser = GherkinParser.builder().build();
// 解析Gherkin源内容(sourceData为读取到的文件内容,uri为文件路径)
SourceEnvelope envelope = parser.parseSource(sourceData, uri);
// 获取解析后的Feature对象
Feature feature = envelope.feature();
  1. 替代makeSourceEnvelope(String data, String uri)
    该方法的功能已整合到GherkinParser的parseSource方法中,直接调用parser.parseSource(data, uri)即可得到SourceEnvelope对象,无需手动构建。

注意事项

  • 确保pom.xml中cucumber-gherkin依赖版本与Cucumber核心版本保持一致(7.8.0对应的Gherkin版本为24.0.0左右)
  • 调整TestSourcesModel.java中依赖旧Gherkin类的代码逻辑,替换为GherkinParser完成解析流程

内容的提问来源于stack exchange,提问作者Suraj Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 00:25:26