我想在Maven项目中使用Junit 5:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>
我当前要禁用该测试:
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Disabled;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toMap;
@Disabled
public class DatabaseFeaturesBitStringTest {
....
}
但是它不起作用。在mvn clean build之后执行测试。你能告诉我我所缺少的吗?
答案 0 :(得分:2)
检查您的surefire插件配置是否具有junit-jupiter-engine依赖性。我不确定,但是我相信应该对其进行配置,以便从引擎工件中加载所有功能,包括“禁用”注释。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>${junit.platform.surefire.provider.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
</dependency>
</dependencies>
</plugin>
答案 1 :(得分:1)
这是由于maven-surefire-plugin
和junit5
之间的不兼容引起的。您要么必须为2.22.0
定义一个至少包含maven-surefire-plugin
的版本(请参阅codefx blog - junit 5 setup),要么只使用maven 3.6.0
。
此外,您还必须具有对木星引擎的依赖性,如上面这个问题的第一行所述:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.0</version>
<scope>test</scope>
</dependency>
如果仅定义了对工件junit-jupiter-api
的依赖关系,这足以使测试编译并使用junit5运行,则@Disabled
批注将被静默忽略,并且特定的测试将按以下方式运行好吧。
答案 2 :(得分:0)
@ staszko032 您描述的POM中的xml代码是2018年的时代。在2019年,我们对Apache项目采用了JUnit5提供程序,并且代码https://stackoverflow.com/a/52056043/2758738不再合法。
@Jens Vagts JUnit5和Surefire / Failsafe之间没有不兼容之处,因为Apache插件使用JUnit5平台启动程序来完成所有这些技巧。Surefire和Failsafe插件不会执行测试。因此,没有什么不兼容的,因为所有工作都是由JUnit5引擎而不是插件的代码完成的。它是您的POM中定义的真实引擎,可以执行测试。该插件仅触发完成所有工作的引擎并将事件发送回插件。
请参阅Apache文档:
https://maven.apache.org/surefire/maven-surefire-plugin/examples/junit-platform.html
https://maven.apache.org/surefire/maven-failsafe-plugin/examples/junit-platform.html