【问题标题】:Cucumber error when compiling HTML reports编译 HTML 报告时出现 Cucumber 错误
【发布时间】:2014-05-15 08:21:31
【问题描述】:

我将 Cucumber 用于 Java 实现,在 Jenkins 上运行我的测试套件后,我收到 Java 堆空间错误。我试图提高进程的内存,但仍然得到错误。我还尝试为surefire和failsafe maven插件增加内存,但仍然无法正常工作,因为问题没有在测试/集成阶段发生。

编译和生成 JSON 报告时会发生这种情况,但有时在运行测试时也会发生。有什么线索吗?

错误跟踪是:

[CucumberReportPublisher] Compiling Cucumber Html Reports ...
[CucumberReportPublisher] copying all json files from slave: /apps/hudson/workspace/cbs-billing-web-nightly1/trunk/cbs-billing-web-qa-test/target/cucumberReport to master reports directory: /apps/hudson/jobs/cbs-billing-web-nightly1/builds/2014-05-15_02-01-24/cucumber-html-reports
[CucumberReportPublisher] Found the following number of json files: 1
[CucumberReportPublisher] 0. Found a json file: cucumber.json
[CucumberReportPublisher] Generating HTML reports
FATAL: Java heap space
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuffer.append(StringBuffer.java:224)
at java.lang.StringBuffer.append(StringBuffer.java:284)
at java.util.regex.Matcher.appendReplacement(Matcher.java:746)
at java.util.regex.Matcher.replaceAll(Matcher.java:813)
at java.lang.String.replaceAll(String.java:2189)
at net.masterthought.cucumber.util.Util.U2U(Util.java:107)
at net.masterthought.cucumber.ReportParser.parseJsonResults(ReportParser.java:30)
at net.masterthought.cucumber.ReportParser.(ReportParser.java:18)
at net.masterthought.cucumber.ReportBuilder.(ReportBuilder.java:65)
at net.masterthought.jenkins.CucumberReportPublisher.perform(CucumberReportPublisher.java:97)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1030)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:725)
at hudson.model.Run.execute(Run.java:1695)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:519)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)

【问题讨论】:

  • 要增加更多的Java堆空间,增加-XmxJava参数的值

标签: java jenkins cucumber jenkins-plugins cucumber-jvm


【解决方案1】:

当您使用 Scenario 对象将自己的文本嵌入黄瓜 HTML 报告中时,我通常会看到这种情况。我曾经使用scenario.write(myObject.toString()) 在我的黄瓜报告中嵌入整个 JSON 对象,这导致 Cucumber Jenkins 插件因您提到的 Java 堆空间错误而崩溃。在我将此类写入限制在报告中之后,一切都开始正常了。

【讨论】:

  • 我几乎不使用这种方法,只是为了跟踪我在执行过程中使用的用户。无论如何,从现在开始,我会考虑到这个调用可能会出现问题。
  • 您的问题中提到的cucumber.json 有多大?当你删除 scenario.write 只是为了 sh@#$# 和咯咯笑:)
  • 还有最新的黄瓜jenkins插件吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 2013-08-01
相关资源
最近更新 更多