Java 从JUnit4迁移到JUnit5-跳过测试用例
我已将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</
<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]的inmaven 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>