Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行Cucumber测试失败,OutOfMemoryError:Java堆空间异常_Java_Maven_Cucumber_Bdd - Fatal编程技术网

运行Cucumber测试失败,OutOfMemoryError:Java堆空间异常

运行Cucumber测试失败,OutOfMemoryError:Java堆空间异常,java,maven,cucumber,bdd,Java,Maven,Cucumber,Bdd,我正在使用Cucumber应用BDD方法,这太棒了 问题是我的测试套件越来越大,现在我得到了以下异常,由于错误的原因导致我的测试失败 我正在使用所有排序或cumber特性,例如:背景、场景大纲和简单场景。 我像这样运行测试: @RunWith(Cucumber.class) @Cucumber.Options(features={"...../controller1"}) public class RunCukes1Test { } 我将功能文件分为不同的目录(controller1、cont

我正在使用Cucumber应用BDD方法,这太棒了

问题是我的测试套件越来越大,现在我得到了以下异常,由于错误的原因导致我的测试失败

我正在使用所有排序或cumber特性,例如:背景、场景大纲和简单场景。 我像这样运行测试:

@RunWith(Cucumber.class)
@Cucumber.Options(features={"...../controller1"})
public class RunCukes1Test {
}
我将功能文件分为不同的目录(controller1、controller2…)和运行程序(RunCukes1Test、runcukes2 test…),但这没有帮助

当我运行每个测试本身时,一切都正常,但当我使用mave lifecycle test运行所有测试时,它失败了。是否有人知道Java Cucumber中有哪些最佳实践可以避免此类问题

    Tests run: 5896, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 33.082 sec
Running com.kenshoo.urlbuilder.appservice.controller.RunCukes4Test

Tests run: 11838, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 80.833 sec
Exception in thread "Thread-73" 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:515)
    at java.lang.StringBuffer.append(StringBuffer.java:306)
    at java.io.BufferedReader.readLine(BufferedReader.java:345)
    at java.io.BufferedReader.readLine(BufferedReader.java:362)
    at org.codehaus.plexus.util.cli.StreamPumper.run(StreamPumper.java:129)
Exception in thread "ThreadedStreamConsumer" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOfRange(Arrays.java:3209)
    at java.lang.String.<init>(String.java:215)
    at java.lang.StringBuffer.toString(StringBuffer.java:585)
    at org.apache.maven.surefire.report.PrettyPrintXMLWriter.escapeXml(PrettyPrintXMLWriter.java:167)
    at org.apache.maven.surefire.report.PrettyPrintXMLWriter.addAttribute(PrettyPrintXMLWriter.java:178)
    at org.apache.maven.surefire.shade.org.codehaus.plexus.util.xml.Xpp3DomWriter.write(Xpp3DomWriter.java:50)
    at org.apache.maven.surefire.shade.org.codehaus.plexus.util.xml.Xpp3DomWriter.write(Xpp3DomWriter.java:55)
    at org.apache.maven.surefire.shade.org.codehaus.plexus.util.xml.Xpp3DomWriter.write(Xpp3DomWriter.java:39)
    at org.apache.maven.surefire.report.XMLReporter.testSetCompleted(XMLReporter.java:128)
    at org.apache.maven.surefire.report.MulticastingReporter.testSetCompleted(MulticastingReporter.java:51)
    at org.apache.maven.surefire.report.TestSetRunListener.testSetCompleted(TestSetRunListener.java:115)
    at org.apache.maven.plugin.surefire.booterclient.output.ForkClient.consumeLine(ForkClient.java:97)
    at org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.run(ThreadedStreamConsumer.java:67)
    at java.lang.Thread.run(Thread.java:662)

Results :

Tests run: 11790, Failures: 0, Errors: 0, Skipped: 0
测试运行:5896,失败:0,错误:0,跳过:0,经过的时间:33.082秒
运行com.kenshoo.urlbuilder.appservice.controller.RunCukes4Test
测试运行:11838,失败:0,错误:0,跳过:0,所用时间:80.833秒
线程“thread-73”java.lang.OutOfMemoryError中出现异常:java堆空间
位于java.util.Arrays.copyOf(Arrays.java:2882)
位于java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
位于java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:515)
在java.lang.StringBuffer.append处(StringBuffer.java:306)
位于java.io.BufferedReader.readLine(BufferedReader.java:345)
位于java.io.BufferedReader.readLine(BufferedReader.java:362)
位于org.codehaus.plexus.util.cli.StreamPumper.run(StreamPumper.java:129)
线程“ThreadedStreamConsumer”java.lang.OutOfMemoryError中出现异常:java堆空间
位于java.util.Arrays.copyOfRange(Arrays.java:3209)
位于java.lang.String。(String.java:215)
位于java.lang.StringBuffer.toString(StringBuffer.java:585)
位于org.apache.maven.surefire.report.PrettyPrintXMLWriter.escapeXml(PrettyPrintXMLWriter.java:167)
位于org.apache.maven.surefire.report.PrettyPrintXMLWriter.addAttribute(PrettyPrintXMLWriter.java:178)
位于org.apache.maven.surefire.shade.org.codehaus.plexus.util.xml.Xpp3DomWriter.write(Xpp3DomWriter.java:50)
位于org.apache.maven.surefire.shade.org.codehaus.plexus.util.xml.Xpp3DomWriter.write(Xpp3DomWriter.java:55)
位于org.apache.maven.surefire.shade.org.codehaus.plexus.util.xml.Xpp3DomWriter.write(Xpp3DomWriter.java:39)
在org.apache.maven.surefire.report.XMLReporter.testSetCompleted上(XMLReporter.java:128)
位于org.apache.maven.surefire.report.MulticastingReporter.testSetCompleted(MulticastingReporter.java:51)
位于org.apache.maven.surefire.report.TestSetRunListener.testSetCompleted(TestSetRunListener.java:115)
位于org.apache.maven.plugin.surefire.booterclient.output.ForkClient.consumerline(ForkClient.java:97)
位于org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.run(ThreadedStreamConsumer.java:67)
运行(Thread.java:662)
结果:
测试运行:11790,失败:0,错误:0,跳过:0

在cucumber测试运行之后,我得到了另一个java堆空间异常的答案。 你可以在这里看到-

我的理论是
-XX:MaxPermSize
是Cucumber运行期间的一个因素,因为Cucumber生成测试代码,并且PermSize与所描述的代码量相关

分析测试结果时,
-Xmx
后期Cucumber运行的一个因素


因此,解决方案是找到两者与实际可用内存之间的平衡。

在cucumber测试运行之后,我得到了另一个java堆空间异常的答案。 你可以在这里看到-

我的理论是
-XX:MaxPermSize
是Cucumber运行期间的一个因素,因为Cucumber生成测试代码,并且PermSize与所描述的代码量相关

分析测试结果时,
-Xmx
后期Cucumber运行的一个因素


因此,解决办法是找到两者与实际可用内存之间的平衡。

那么,另一个类似的问题发生了什么:?我认为有两个不同的问题。一个是在cumber期间(在dev env中),另一个是在cumber之后(在build env中)。但是你在另一个问题上得到了帮助吗?那个问题解决了吗?它正朝着一个好的方向发展。在分析结果时,-XX:MaxPermSize是Cucumber运行期间的一个因素,-Xmx是Cucumber运行后的一个因素。那么另一个类似的问题发生了什么:?我认为有两个不同的问题。一个是在cumber期间(在dev env中),另一个是在cumber之后(在build env中)。但是你在另一个问题上得到了帮助吗?那个问题解决了吗?它正朝着一个好的方向发展。在分析结果时,-XX:MaxPermSize似乎是Cucumber运行期间的一个因素,-Xmx是Cucumber运行后的一个因素。