首页 > 解决方案 > 尝试使用 Maven Surefire 在不同的 JVM 上运行 JUNIT 测试

问题描述

我正在尝试在不同的 JVM 上运行我的每个测试。为此,我使用以下 Surefire 配置:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M3</version>
        <configuration>
            <forkMode>pertest</forkMode>
            <forkCount>1</forkCount>
            <reuseForks>false</reuseForks>
        </configuration>
    </plugin>

此配置似乎在不同的机器上运行每个 TestClasses,但我需要让每个测试方法在不同的 JVM 上运行。

当我在 Intellij 下设置附加配置时,我让每个测试都在不同的 JVM 上运行。

在此处输入图像描述

它不等同于我在我的 Surefire 插件下定义的内容吗?

标签: maventestingjunitmaven-3maven-surefire-plugin

解决方案


在您的屏幕截图中,Intellij 配置与 surefire 配置不同pom.xml

以下是来自 Maven 的插件文档,用于forkMode. 根据以下maven文档,forkMode弃用并且没有价值method

在此处输入图像描述

您也可以尝试使用parallel参数值为 as methods。以下是什么parallel意思:

在此处输入图像描述

有关并行测试执行的详细了解,请参阅以下链接:

https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html

http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html


推荐阅读