Java 从JUnit4迁移到JUnit5-跳过测试用例

Java 从JUnit4迁移到JUnit5-跳过测试用例,java,maven,junit4,maven-surefire-plugin,junit5,Java,Maven,Junit4,Maven Surefire Plugin,Junit5,我已将JUnit4代码迁移到JUnit5,并具有以下版本依赖项 <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.3.1</version> <scope>test</

我已将JUnit4代码迁移到JUnit5,并具有以下版本依赖项

 <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.3.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-runner</artifactId>
        <version>1.3.1</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-junit-jupiter</artifactId>
        <version>2.22.0</version>
        <scope>test</scope>
    </dependency>
但我面临的问题是,在迁移到junit5后,运行它会跳过测试用例

我使用的是
maven surefire插件-2.22.0版。

运行时只需打印下面的行

测试运行:0,失败:0,错误:0,跳过:0

我甚至尝试了以下配置,但没有任何帮助

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.0</version>
        <configuration>
            <properties>
                <configurationParameters>
                    junit.jupiter.conditions.deactivate = *
                    junit.jupiter.extensions.autodetection.enabled = true
                    junit.jupiter.testinstance.lifecycle.default = per_class
                    junit.jupiter.execution.parallel.enabled = true
                </configurationParameters>
            </properties>
        </configuration>
    </plugin>
</plugins>

org.apache.maven.plugins
maven surefire插件
2.22.0
junit.jupiter.conditions.deactivate=*
junit.jupiter.extensions.autodetection.enabled=true
junit.jupiter.testinstance.lifecycle.default=每类
junit.jupiter.execution.parallel.enabled=true

我的maven版本是
3.3.9

并且不运行测试用例。我面临这个奇怪问题的具体原因。早期JUnit4的相同测试用例运行良好


在进一步分析之后,我发现命令=>
mvn-bverify-DforkCount=1-DreuseForks=false
没有运行测试用例并跳过它们。但是当我用=>
mvn-bverify-DforkCount=1-DreuseForks=true替换同一个命令时,它就开始工作了。我知道properties forkCount=1/reuseForks=true,这意味着maven surefire插件创建一个新的JVM进程来执行一个maven模块中的所有测试,但我想知道为什么它不能与
mvn-B verify-DforkCount=1-DreuseForks=false
命令一起工作。Junit5迁移是否需要任何maven或maven helper版本升级

这是一个包含JUnit 5.3[.1]的in
maven surefire插件,配置使用fork,但不重用它们


升级到
maven-surefire-plugin
2.22.1(上周末发布,2018年10月7日)将解决这个问题。

测试的名称是什么?测试有一个名称约定,可能是mvn-B verify-DforkCount=1-DreuseForks=true的可能重复项有效,但mvn-B verify-DforkCount=1-DreuseForks=false无效。我只是想知道有什么具体的原因。@melanzane这不是重复的。这是一个不同的具体问题-请参阅。感谢@Mureinik的回答。它解决了我的问题。你救了我一天。也感谢大家的回应。
<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.0</version>
        <configuration>
            <properties>
                <configurationParameters>
                    junit.jupiter.conditions.deactivate = *
                    junit.jupiter.extensions.autodetection.enabled = true
                    junit.jupiter.testinstance.lifecycle.default = per_class
                    junit.jupiter.execution.parallel.enabled = true
                </configurationParameters>
            </properties>
        </configuration>
    </plugin>
</plugins>