maven - 在 Java 堆空间异常上运行 Cucumber 测试后 Jenkins 构建失败

标签 maven jenkins cucumber

使用 Jenkins 构建时出现以下异常。运行 Cucumber 测试后会引发此异常。

谁能说出 java 堆空间上失败的确切位置吗?

您知道可以采取什么措施来解决这个问题吗?

一些背景:在 Cucumber 测试期间,我有一个 java 堆空间,在增加内存后,Cucumber 测试通过了,但之后我立即得到了这个 java 堆空间。

谢谢

利尔

mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.9(default-test)
[JENKINS] Recording test results
mavenExecutionResult exceptions not empty
message : Java heap space
Stack trace : 
java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOfRange(Arrays.java:3209)
    at java.lang.String.<init>(String.java:215)
    at com.sun.org.apache.xerces.internal.xni.XMLString.toString(XMLString.java:185)
    at com.sun.org.apache.xerces.internal.util.XMLAttributesImpl.getValue(XMLAttributesImpl.java:537)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$AttributesProxy.getValue(AbstractSAXParser.java:2319)
    at org.dom4j.tree.AbstractElement.setAttributes(AbstractElement.java:543)
    at org.dom4j.io.SAXContentHandler.addAttributes(SAXContentHandler.java:916)
    at org.dom4j.io.SAXContentHandler.startElement(SAXContentHandler.java:249)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
    at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    at org.dom4j.io.SAXReader.read(SAXReader.java:264)
    at hudson.tasks.junit.SuiteResult.parse(SuiteResult.java:112)
    at hudson.tasks.junit.TestResult.parse(TestResult.java:227)
    at hudson.tasks.junit.TestResult.parse(TestResult.java:163)
    at hudson.maven.reporters.SurefireArchiver.postExecute(SurefireArchiver.java:141)
    at hudson.maven.Maven3Builder$MavenExecutionListener.recordMojoEnded(Maven3Builder.java:421)
    at hudson.maven.Maven3Builder$MavenExecutionListener.mojoSucceeded(Maven3Builder.java:403)
    at org.jfrog.build.extractor.maven.BuildInfoRecorder.mojoSucceeded(BuildInfoRecorder.java:241)
    at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:87)
    at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:228)
channel stopped

最佳答案

进入 Jenkins 设置并将环境变量 MAVEN_OPTS 添加到 -Xmx512m -XX:MaxPermSize=256m。看起来测试完成后它正在尝试解析结果,但 XML 文件太大。

关于maven - 在 Java 堆空间异常上运行 Cucumber 测试后 Jenkins 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13381977/

相关文章:

java - 在 pom 中添加 selenium 依赖项后,AWS Lambda Jar 无法压缩

java - SauceLabs Java 原型(prototype)中的奇怪版本号

jenkins - 从 Jenkins 中,如何获取 JSON 格式的当前正在运行的作业列表?

java - 从artifactory中的jar生成pom文件?

linux - 更改 Cloudbees 中的全局超时持续时间

jquery - 更改 jquery 事件,当使用 capybara 运行 cucumber 时不会触发它

java - driver.quit后如何打开chromedriver的新 session ?

ruby-on-rails - rails BDD : Cucumber alternatives

maven - 如何在 Nexus OSS 3 中配置路由

java - 通过企业代理使用 Maven 3.3.9