在mvn测试期间连接JVM

时间:2012-05-28 06:20:24

标签: java jvm

嗨:我的应用程序有10,000个Junit测试用例。上周,当我添加新代码时,我注意到有很多Java堆内存单元测试用例错误。 1)一种方法是重新检查我添加的代码。 2)我在单元测试用例期间连接JVM,然后获得堆转储。有人能给我提示如何做2)案例吗?

我使用windows,maven,J2SE。

基本上我知道我将给Java命令提供什么样的参数,但是我不会把这些参数放在pom xml中。

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.4.2</version>
</plugin>

1 个答案:

答案 0 :(得分:1)

您可以设置jvm属性-XX:-HeapDumpOnOutOfMemoryError(http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html)并将其设置为surefire(http:/ /maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#argLine)
或者,您可以使用jmap按需转储进程的内存 请参阅jps(用于获取pid)和jmap文档
http://docs.oracle.com/javase/6/docs/technotes/tools/share/jps.html
http://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html