本文翻译自JUnit 5 Maven Example: Running Tests with Surefire。
在本教程中,我们将学习在基于Maven
编写JUnit 5
测试时如何获取相关的依赖,以及如何配置maven-surefire-plugin
来运行相关测试。
本文是JUnit 5 教程的一部分。
相关依赖
若要能够编写JUnit 5
测试需要在pom.xml
中添加junit-jupiter
作为依赖项:
1
2
3
4
5
6
7
8
|
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.8.0</version>
<scope>test</scope>
</dependency>
</dependencies>
|
此外还需添加maven-surefire-plugin
以便能运行JUnit 5
测试:
1
2
3
4
5
6
7
8
9
|
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
</plugins>
</build>
|
至此我们已经有了使用Maven
编写和运行JUnit 5
测试的最基本配置。
旧版本配置
从JUnit Jupiter 5.4.0
开始,有一个聚合器组件junit-jupiter
,它可以传递对junit-jupiter-api
、junit-jupiter-params
和junit-jupiter-engine
的依赖关系,从而简化依赖关系管理。
为了能够使用旧版本编写JUnit 5
测试,需要junit-jupiter-api
组件作为依赖项:
1
2
3
4
5
6
7
8
|
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
|
从Maven Surefire2.22.0
开始,对JUnit Jupiter
提供了原生支持,当使用Maven Surefire2.21.0
或更早版本时,则必须使用Maven Surefire
插件来运行测试:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
|
同样需要在运行时类路径下添加JUnit Jupiter
测试引擎,可在 maven-surefire-plugin
插件中添加相关依赖:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
|
至此我们已经有了使用旧版本的Maven Surefire
运行JUnit 5
测试的基本配置。
运行测试
maven-surefire-plugin
插件默认情况下在src/test/java
目录下查找测试用例。
可通过添加一个空测试来检查我们的配置是否生效。
1
2
3
4
5
6
7
|
class MavenExampleTest {
@Test
void shouldRun() {
}
}
|
在命令行中运行相关测试:
我们应该能看到类似如下输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[INFO] --- maven-surefire-plugin:2.22.0:test (default-test) @ junit5-maven ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running MavenExampleTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 s - in MavenExampleTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
|
好了,Maven Surefire
现在可正常运行测试。
总结
在这篇JUnit 5 Maven
示例中,我们学习了如何添加编写JUnit 5
测试所需的依赖项以及如何配置Maven Surefire
插件以便能够运行测试。
本文的示例代码能在GitHub中找到。