Maven 2 Maven:正在尝试为单元测试创建内存转储
我很难为产生内存不足错误的单元测试创建内存转储 我的MAVEN_选项包含以下内容:Maven 2 Maven:正在尝试为单元测试创建内存转储,maven-2,Maven 2,我很难为产生内存不足错误的单元测试创建内存转储 我的MAVEN_选项包含以下内容: -Xmx1024m -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp 然而,当我使用“mvn安装”从命令行运行单元测试时,当OutOfMemoryError发生时,我不会得到任何这样的内存转储 如何获取内存转储 感谢Maven(surefireplugin准确地说)默认情况下为运行测试创建新的JVMMAVEN_OPTS变量由运行MAVEN本身的JV
-Xmx1024m -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp
然而,当我使用“mvn安装”从命令行运行单元测试时,当OutOfMemoryError发生时,我不会得到任何这样的内存转储
如何获取内存转储
感谢Maven(surefireplugin
准确地说)默认情况下为运行测试创建新的JVMMAVEN_OPTS
变量由运行MAVEN本身的JVM使用,但不是分叉测试JVM。要更改该JVM的设置,请使用以下代码段:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp</argLine>
</configuration>
</plugin>
<!-- ... -->
</plugins>
</build>
</project>
org.apache.maven.plugins
maven surefire插件
-Xmx1024m-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=C:\Temp
在哪里添加此插件?在我正在运行其测试的项目的pom中?@DJoyce:是的,我更新了我的答案,以显示您放置该代码段的确切上下文。我现在已经尝试过了,尽管我观察到OutOfMemory错误,但C:\Temp中仍然没有条目。还有其他想法吗?@DJoyce:您的选项是错误的,应该是:'-XX:+HeapDumpOnOutOfMemoryError',而不是-XX:-HeapDumpOnOutOfMemoryError
。我更正了我的答案(你问题的C&P)。