Jenkins 中的 Cucumber 报告错误 - “net.masterthought.cucumber.ValidationException: No report file was added”

问题描述 投票:0回答:4

使用 Jenkins 运行作业(使用 maven 和 cucumber)时,作业运行成功。 但是,当我查看黄瓜报告时,我收到如下图所示的消息。

net.masterthought.cucumber.ValidationException: No report file was added!
    at net.masterthought.cucumber.ReportParser.parseJsonFiles(ReportParser.java:55)
    at net.masterthought.cucumber.ReportBuilder.generateReports(ReportBuilder.java:90)
    at net.masterthought.jenkins.CucumberReportPublisher.generateReport(CucumberReportPublisher.java:300)
    at net.masterthought.jenkins.CucumberReportPublisher.perform(CucumberReportPublisher.java:229)
    at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723)
    at hudson.model.Build$BuildExecution.post2(Build.java:185)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:668)
    at hudson.model.Run.execute(Run.java:1763)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)

我参考了这个类似的问题链接,但我无法理解解决方案和采取的步骤。

  1. 在我的项目(在 Eclipse 中)的什么地方可以看到生成的这个 json 文件?
  2. 如何复制这个 json 文件的路径并在 Jenkins 中将其设置为全局参数?

任何帮助/建议将不胜感激。

如果这个问题有任何其他可行的解决方案,请分享。

jenkins cucumber report jenkins-plugins maven-surefire-plugin
4个回答
0
投票

@Kirti Gupta,

我遇到了类似的问题,将maven-cucumber-reporting的版本降级到3.15.0后可以解决。


0
投票

我遇到了同样的问题。终于解决了问题。 对我来说,问题是我添加了 Cucumber DSL 代码和 mvn 测试代码,以在 Jenkins 文件中的“selenium”代理的不同实例中构建测试。所以文件不是从工作区复制的。

将黄瓜代码移动到构建阶段(测试构建和黄瓜报告在同一阶段)后,它对我有用。


0
投票

报错net.masterthought.cucumber.ValidationException: No JSON report file was found!表示 Cucumber Report Jenkins 插件无法找到任何 JSON 报告文件来生成报告。如果未生成 JSON 文件,或者它们不在预期位置,就会发生这种情况。

要修复此错误,您需要确保 JSON 报告文件是由您的 Cucumber 测试生成的。如果您使用的是 cucumber-JVM 库,则可以使用 JSON: reporter 生成 JSON 报告文件。例如

@RunWith(Cucumber.class)
@CucumberOptions(
  plugin = {"json:target/cucumber.json"}
)
public class RunCucumberTest {
}

这将在 target/cucumber.json 生成一个 JSON 报告文件,Cucumber Report Jenkins 插件可以使用它。

您还需要确保 JSON 报告文件位于预期位置。 Cucumber Report Jenkins 插件默认在目标目录中查找 JSON 报告文件。如果您在不同的位置生成 JSON 报告文件,则需要在插件配置中指定该位置。

为此,转到 Jenkins 配置页面并导航到 Cucumber Report 插件配置。在“JSON 报告路径”字段中,输入 JSON 报告文件所在目录的路径。例如,如果 JSON 报告文件位于输出目录中,您可以在“JSON 报告路径”字段中输入输出。保存更改并再次运行构建以生成 Cucumber 报告。这应该可以解决未找到 JSON 报告文件的问题!错误。


0
投票

在 TestRunner 文件中,您需要在@CucumberOptions 中提供以下插件:

plugin = {"pretty", "json:target/CucumberTestReport.json", "html:target/CucumberTestReport.html"},

你需要Html报告在测试运行后生成单独的报告,并需要json报告在Jenkins中生成详细报告。

现在在 Jenkins 作业中,在配置中选择构建后部分的“cucumber reports”,单击高级选项并在“JSON Reports Path”文本字段中提供“您的 JSON 文件的完整绝对路径”。保存工作,它绝对可以正常工作。

了解更多:https://plugins.jenkins.io/cucumber-reports/

© www.soinside.com 2019 - 2024. All rights reserved.