Maven Jenkins构建在Java堆空间异常上运行Cucumber测试后失败
当使用Jenkins构建时,我会遇到以下异常。运行Cucumber测试后引发此异常 有人能说出java堆空间上发生故障的确切位置吗 你知道可以做些什么来解决这个问题吗 一些背景知识:在cumber测试期间,我有一个java堆空间,在我增加内存之后,cumber测试通过了,但之后我就得到了这个java堆空间 谢谢 狮子座Maven Jenkins构建在Java堆空间异常上运行Cucumber测试后失败,maven,jenkins,cucumber,Maven,Jenkins,Cucumber,当使用Jenkins构建时,我会遇到以下异常。运行Cucumber测试后引发此异常 有人能说出java堆空间上发生故障的确切位置吗 你知道可以做些什么来解决这个问题吗 一些背景知识:在cumber测试期间,我有一个java堆空间,在我增加内存之后,cumber测试通过了,但之后我就得到了这个java堆空间 谢谢 狮子座 mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.9(默认测试) [詹金斯]记录测试结果 mavenE
mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.9(默认测试)
[詹金斯]记录测试结果
mavenExecutionResult异常不为空
消息:Java堆空间
堆栈跟踪:
java.lang.OutOfMemoryError:java堆空间
位于java.util.Arrays.copyOfRange(Arrays.java:3209)
位于java.lang.String。(String.java:215)
位于com.sun.org.apache.xerces.internal.xni.XMLString.toString(XMLString.java:185)
在com.sun.org.apache.xerces.internal.util.XMLAttributesImpl.getValue上(XMLAttributesImpl.java:537)
位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$AttributeProxy.getValue(AbstractSAXParser.java:2319)
位于org.dom4j.tree.AbstractElement.setAttributes(AbstractElement.java:543)
位于org.dom4j.io.SAXContentHandler.addAttributes(SAXContentHandler.java:916)
位于org.dom4j.io.SAXContentHandler.startElement(SAXContentHandler.java:249)
位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
位于com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179)
在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
位于com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
位于com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
位于com.sun.org.apache.xerces.internal.jaxp.saxpasserimpl$jaxpsaxpasser.parse(saxpasserimpl.java:522)
位于org.dom4j.io.SAXReader.read(SAXReader.java:465)
位于org.dom4j.io.SAXReader.read(SAXReader.java:264)
位于hudson.tasks.junit.SuiteResult.parse(SuiteResult.java:112)
位于hudson.tasks.junit.TestResult.parse(TestResult.java:227)
位于hudson.tasks.junit.TestResult.parse(TestResult.java:163)
位于hudson.maven.reporters.SurefireArchiver.postExecute(SurefireArchiver.java:141)
在hudson.maven.Maven3Builder$MavenExecutionListener.recordMojoEnded(Maven3Builder.java:421)
在hudson.maven.Maven3Builder$MavenExecutionListener.mojoSucceeded(Maven3Builder.java:403)
在org.jfrog.build.extractor.maven.BuildInfoRecorder.mojoSucceeded(BuildInfoRecorder.java:241)
位于org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:87)
位于org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:228)
通道停止
进入詹金斯设置,将环境变量MAVEN_OPTS
添加到-Xmx512m-XX:MaxPermSize=256m
。测试完成后,它似乎正在尝试解析结果,但XML文件太大。我不确定您的CI环境是什么样的,但如果您将Jenkins作为Windows服务运行,您也可以尝试增加可用的堆大小
为此,请将文件定位在${JENKINS_HOME}\JENKINS.xml,并相应地更新命令行参数。(即,将“-Xmx256m”更改为更大的值,如“-Xmx512m”)。我将首先尝试分析黄瓜输出更长的原因。
在我的例子中,cucumber报告的堆栈跟踪太多了。谢谢,@Jordan,我会试试。@LiorK您可能还需要增加Jenkins本身的堆大小。你在什么操作系统上运行它?我在AmazonEC2服务器上使用Linux。你知道如何增加Jenkins本身的堆大小吗?我正在使用-Xmx和-XX:MaxPermSize,这似乎是一个很好的方向。谢谢,很多测试都因为同样的原因失败了。
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