DR
对于JUnit 5版本5.4.0-M1或更高版本,请指定新的单maven工件
junit-jupiter
_聚合器_在您的POM中。
<!--JUnit 5-->
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.4.0-M1</version>
</dependency>
对于早期版本,至少指定这两个工件:
junit-jupiter-api
和;
junit-jupiter-engine
.
Junit 5 Yokes多个测试框架
据我所知,JUnit5已经被重新架构为多个测试框架的枷锁。这些测试系统包括JUnit 4__Vintage_157;测试、新的JUnit 5测试(新的测试语法、新的注释和方法),以及其他诸如
Specsy
,
Spek
,
Cucumber
,流口水场景,
jqwik
和
more that implement
这个
TestEngine
接口。
显然是
朱比特木星API
神器只是外轭。您还必须指定一个或多个
测试引擎
实际运行测试的实现。例如,要运行Vintage Junit 4测试,需要
VintageTestEngine
或者运行JUnit 5测试,您需要
JupiterTestEngine
实施。
因此,要运行JUnit 5测试,必须指定
Jupiter发动机
在Maven POM中使用
Junit Jupiter引擎
伪影。
参见JUnit 5手册,特别是章节
Configuring Test Engines
.
见
this presentation
由MarcPhilipp绘制,图中显示了JUnit5作为一个平台,(a)一个用于IDE/构建工具的核心,(b)一个用于程序员编写测试的可插拔测试编写框架。
Junit Jupiter引擎
如所见
this sample
,为添加第二个JUnit相关依赖项
JUNit Jupiter Engine
. 这个
documentation for this artifact
简单地说:junit jupiter测试引擎实现,只在运行时需要。
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>
只需将一个依赖项添加到问题中显示的项目中,就可以看到测试的运行。
[信息]running work.basil.example.apptest
[信息]测试运行:1,失败:0,错误:0,跳过:0,已用时间:0.004 s-in work.basil.example.apptest
junit-jupiter-params
同一个示例还显示了第三个JUnit依赖项,用于
JUnit Jupiter Params
. 虽然不需要运行示例测试,但它可能有其他用途。显然与
Parameterized Tests
.
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>
这使得共有3个JUnit依赖项。
<!--JUnit 5-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>
您的同一个POM文件,现在更新为所有3个JUnit依赖项。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>work.basil.example</groupId>
<artifactId>tester</artifactId>
<version>1.0-SNAPSHOT</version>
<name>tester</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<!--JUnit 5-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.0-M1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
JUnit木星
人工制品
Junit 5的5.4.0版带来了一个新的Maven工件,
JUnit木星
有头衔的
Junit Jupiter(聚合器)
. 为了方便编程,单词_aggregator*显然是指它捆绑了Maven中一些常用的JUnit 5构件。
加上这一个
dependency
在你的pom中,你的项目中有8个库。
<!——JUnit 5—& GT;
&!--https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-->
<相关性>
<groupid>org.junit.jupiter</groupid>
<artifactid>Junit Jupiter</artifactid>
<版本>5.4.0-M1</version>
</dependency>