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依赖库资料,但仍未找到替代方案,请问最新版本中这两个方法的替代方案是什么?
解决方案
针对这两个被移除的方法,最新版本的替代方式如下:
- 替代
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();
- 替代
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
相关产品推荐
相关产品推荐

