2

メモリ不足エラーを生成する単体テストのメモリ ダンプを作成するのが困難です。

私の MAVEN_OPTS には以下が含まれています。

-Xmx1024m -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp

ただし、"mvn install" を使用してコマンド ラインから単体テストを実行すると、OutOfMemoryError が発生しても、そのようなメモリ ダンプは取得されません。

メモリ ダンプを取得するにはどうすればよいですか?

ありがとう

4

1 に答える 1

7

Maven (surefire-plugin正確には) はデフォルトで、テストを実行するための新しい JVM を作成します。MAVEN_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>
于 2012-07-13T21:20:54.007 に答える