Maven Mockito、jacoco和surefire导致内存不足

Maven Mockito、jacoco和surefire导致内存不足,maven,mockito,jacoco,surefire,Maven,Mockito,Jacoco,Surefire,我正在使用mockito 1.8.3、jacoco 0.72和maven 3.0.5 surefire插件(2.12.4)执行单元测试并生成覆盖率报告,运行良好 随着越来越多的测试被添加,它开始不工作。我在测试执行过程中不断遇到内存不足错误,无法找到一种方法来找出错误所在 我有大约1800多个使用mockito作为模拟工具的测试用例。如果我在maven测试期间没有在测试阶段之前使用“org.jacoco:jacococomaven plugin:prepare agent”运行jacoco,这是

我正在使用mockito 1.8.3、jacoco 0.72和maven 3.0.5 surefire插件(2.12.4)执行单元测试并生成覆盖率报告,运行良好

随着越来越多的测试被添加,它开始不工作。我在测试执行过程中不断遇到内存不足错误,无法找到一种方法来找出错误所在

我有大约1800多个使用mockito作为模拟工具的测试用例。如果我在maven测试期间没有在测试阶段之前使用“org.jacoco:jacococomaven plugin:prepare agent”运行jacoco,这是很好的,但只要我添加jacoco agent,我就会在PermGen full中遇到OOO问题

我已经通过修改MAVEN_OPTS(由于surefire将派生一个新的进程,因此不应该工作)和pom中的surefire argline参数将PermGen添加到2GB中,但这并没有多大帮助

当OOO发生时,我试图通过向surefire插件添加参数来获得一个核心转储,但从未在任何文件夹中看到转储文件。我怀疑我的JVM设置对surefire插件不起作用,但不确定哪里出了问题。谁能帮我一个忙?谢谢

            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire.version}</version>
                <inherited>true</inherited>
                <configuration>
                    <properties>
                        <property>
                            <name>argLine</name>                                    <value>-server -ea -XX:-UseSplitVerifier -XX:MaxPermSize=2g -Xmx3g -XX:+HeapDumpOnOutOfMemoryError </value>
                        </property>
                        <property>
                            <name>forkMode</name>
                            <value>once</value>
                        </property>
                        <property>
                            <name>reportFormat</name>
                            <value>plain</value>
                        </property>
                        <property>
                            <name>skipTests</name>
                            <value>${maven.test.skip}</value>
                        </property>
                    </properties>
                </configuration>
            </plugin>

maven surefire插件
${surefire.version}
真的
argLine-server-ea-XX:-UseSplitVerifier-XX:MaxPermSize=2g-Xmx3g-XX:+HeapDumpOnOutOfMemoryError
分叉模式
一旦
报告格式
平原
滑雪运动员
${maven.test.skip}

您需要为以下内容设置内存:


[...]
org.apache.maven.plugins
maven surefire插件
2.18.1
3.
真的
-Xmx1024m-XX:MaxPermSize=256m
我的测试模式${surefire.forkNumber}
[...]

如果您配置了jacoco以及
maven故障保护插件
,那么您也需要将内存参数传递给该插件:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-failsafe-plugin</artifactId>
   <version>2.14.1</version>
   <configuration>
      <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
   </configuration>
</plugin>

org.apache.maven.plugins
maven故障保护插件
2.14.1
-Xmx1024m-XX:MaxPermSize=256m

谢谢,它正在工作。不知道为什么我使用的“属性”格式不起作用。我仍然面临问题,你能帮助我吗?瓦迪姆,仍然有问题,你能帮助我吗?仍然有问题,请帮助我吗?