在已损坏的JVM上自动链接多个测试

时间:2016-04-19 19:08:54

标签: java linux maven jvm

我正在使用Java8上的maven + testng从linux命令行运行一系列性能测试。

这些测试中的大多数都会运行,直到它们破坏JVM(通常是内存耗尽),此时我手动设置并从新的JVM运行另一个测试。

我希望能够自动链接多个测试以反复运行,但是当前一个测试使JVM处于不可用状态时,我不知道如何实现此目的。

我有没有办法通过Java / Maven / Linux /其他程序/框架重置损坏的JVM(或其他类似的东西)?

我可以访问Oracle的JDK或OpenJDK,但如果需要,我可以说服服务器管理员安装另一个JDK。

1 个答案:

答案 0 :(得分:2)

maven-surefire-plugin允许测试在分叉的JVM中运行。信息为on the plugin page,但您需要以下内容:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <forkCount>1</forkCount>
        <reuseForks>false</reuseForks>
    </configuration>
</plugin>

这将为每次测试运行创建一个新的JVM。您可以通过更改forkCount来调整此值(例如,确保测试不会并行运行或执行)并使用reuseForks来确定是否应该回收JVM。