【问题标题】:Trying to run JUNIT tests on different JVM using Maven Surefire尝试使用 Maven Surefire 在不同的 JVM 上运行 JUNIT 测试
【发布时间】:2019-09-30 10:40:04
【问题描述】:

我正在尝试在不同的 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 插件下定义的一样吗?

【问题讨论】:

    标签: maven testing junit maven-3 maven-surefire-plugin


    【解决方案1】:

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

    以下是来自 Maven 的针对 forkMode 的插件文档。根据以下maven 文档,forkMode不推荐使用,并且可以具有method 值。

    您也可以尝试使用值为methodsparallel 参数。以下是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

    【讨论】:

    • 我认为我可以仅使用 Surefire 复制该行为,但我无法使用并行测试执行,因此我能够解决此问题的唯一方法是在不同的类中创建每个测试并定义新的Maven 属性 forkCount 和 reuseForks 以避免使用已弃用的属性。使用此属性,将为每个类启动一个新的 JVM。
    猜你喜欢
    • 1970-01-01
    • 2020-07-25
    • 2020-12-31
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2022-01-14
    相关资源
    最近更新 更多