Jenkins无法生成Cucumber报告问题求助
Jenkins Cucumber报告插件报错:JSON文件不是有效报告的排查方案
问题描述
已在Jenkins构建后操作中配置Cucumber报告,但持续报错,上周还能正常生成报告,目前无法成功生成。报错信息如下:
net.masterthought.cucumber.ValidationException: File '/var/lib/jenkins/jobs/HE_HQ_Automaton/builds/111/cucumber-html-reports/.cache/target/cucumber-reports/CucumberTestReport.json' is not a valid Cucumber report! at net.masterthought.cucumber.ReportParser.parseForFeature(ReportParser.java:104) at net.masterthought.cucumber.ReportParser.parseJsonFiles(ReportParser.java:72) at net.masterthought.cucumber.ReportBuilder.generateReports(ReportBuilder.java:97) at net.masterthought.jenkins.CucumberReportPublisher.generateReport(CucumberReportPublisher.java:563) at net.masterthought.jenkins.CucumberReportPublisher.perform(CucumberReportPublisher.java:434) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:79) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:814) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:763) at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:707) at hudson.model.Run.execute(Run.java:1921) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442)
排查与解决步骤
检查目标JSON文件的完整性
登录Jenkins服务器,定位到报错中的JSON文件路径,执行cat /var/lib/jenkins/jobs/HE_HQ_Automaton/builds/111/cucumber-html-reports/.cache/target/cucumber-reports/CucumberTestReport.json查看内容:- 如果文件为空,说明构建过程中Cucumber没有生成完整的报告,需检查测试执行阶段的日志,看是否有测试中断、异常导致报告生成失败
- 如果文件内容存在JSON语法错误(比如括号不闭合、逗号缺失),说明报告生成过程中出现异常,需要修复测试代码或Cucumber执行配置
验证版本兼容性
检查项目中Cucumber核心依赖版本(如Maven中的io.cucumber:cucumber-java)与Jenkins上的Cucumber Reports插件版本是否匹配:- 若最近更新过Cucumber或插件,可能存在格式不兼容问题,回退到上周正常工作的版本测试
清理Jenkins构建缓存
报错路径包含.cache目录,可能是缓存文件损坏导致解析失败:
执行命令删除对应构建的缓存目录:rm -rf /var/lib/jenkins/jobs/HE_HQ_Automaton/builds/111/cucumber-html-reports/.cache,然后重新触发构建核对报告路径配置
再次确认Jenkins构建后操作中Cucumber Reports的配置:- 检查
JSON report location的路径是否正确,是否存在拼写错误或路径层级变化 - 确认路径是相对于Jenkins工作空间的相对路径,还是绝对路径,插件对路径的解析逻辑是否有变更
- 检查
检查构建日志细节
回到该构建的完整日志,向前查找Cucumber测试执行的阶段,确认是否有报错信息(如测试用例执行失败、报告生成命令异常),这些问题可能导致最终生成的JSON报告无效
内容的提问来源于stack exchange,提问作者Pathfinder
相关产品推荐
相关产品推荐

