Maven Surefire 插件简介

ops/2024/11/27 22:03:45/

Maven Surefire 插件是 Maven 构建系统中的一个关键组件,专门用于在构建生命周期中执行单元测试。

它通常与 Maven 构建生命周期的测试阶段绑定,确保所有单元测试在项目编译后和打包前被执行。

最新版本

Maven Surefire 插件的最新版本为 3.5.2

使用最新版本可以确保访问到最新的特性和改进。

配置 Maven Surefire 插件

要使用 Maven Surefire 插件,您需要在项目的 pom.xml 文件中进行配置。下面将通过步骤介绍如何在一个 Maven 项目中设置 Surefire 插件。

步骤 1: 创建 Maven 项目

运行以下命令创建一个新的 Maven 项目:

mvn archetype:generate -DgroupId=com.example -DartifactId=surefire-plugin-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

该命令会生成一个简单的 Maven 项目,其目录结构如下:

surefire-plugin-demo
|-- src
|   |-- main
|   |   `-- java
|   |       `-- com
|   |           `-- example
|   |               `-- App.java
|   `-- test
|       `-- java
|           `-- com
|               `-- example
|                   `-- AppTest.java
|-- pom.xml
`-- target
步骤 2: 添加 Maven Surefire 插件配置

进入项目目录并打开 pom.xml 文件,在 <build> 标签内添加 Maven Surefire 插件的配置:

<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>com.example</groupId><artifactId>surefire-plugin-demo</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.8.2</version><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId><version>5.8.2</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.0.0-M8</version></plugin></plugins></build>
</project>
  • <groupId>: 指定 Maven Surefire 插件的组ID。
  • <artifactId>: 指定 Maven Surefire 插件。
  • <version>: 使用的插件版本。请确保使用最新版本。
步骤 3: 创建单元测试

src/test/java 目录下创建一个单元测试文件,例如 AppTest.java

java">package com.example;import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;public class AppTest {@Testpublic void sampleTest() {System.out.println("正在运行单元测试...");assertTrue(true);}
}
步骤 4: 构建并运行单元测试

使用以下命令构建项目并运行单元测试:

mvn clean test

构建完成后,单元测试将在测试阶段运行。

步骤 5: 查看结果

输出将包括单元测试的结果:

-------------------------------------------------------T E S T S
-------------------------------------------------------
运行 com.example.AppTest
正在运行单元测试...
测试运行数: 1, 失败数: 0, 错误数: 0, 跳过数: 0, 总耗时: 0.001 秒
结果:测试运行数: 1, 失败数: 0, 错误数: 0, 跳过数: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

高级配置

Maven Surefire 插件提供了多种配置选项来定制测试行为。以下是一些常用的配置示例:

指定测试包含/排除规则

可以在 <plugin> 标签内添加以下配置来指定要包含或排除的测试:

<configuration><includes><include>**/*Test.java</include><include>**/*Tests.java</include><include>**/*TestCase.java</include></includes><excludes><exclude>**/*IntegrationTest.java</exclude></excludes>
</configuration>
设置系统属性

可以设置系统属性,使这些属性在测试中可用:

<configuration><systemPropertyVariables><propertyName>propertyValue</propertyName></systemPropertyVariables>
</configuration>
并行运行测试

可以通过以下配置并行运行测试以加速测试过程:

<configuration><parallel>methods</parallel><threadCount>4</threadCount>
</configuration>

总结

Maven Surefire 插件是 Maven 项目中运行单元测试的重要工具。

通过使用此插件,可以确保在构建过程中运行单元测试,有助于保持代码质量并及早发现问题。

本指南全面介绍了设置和使用 Maven Surefire 插件的方法,并提供了一个实际示例帮助您入门。

掌握这些知识后,您可以有效地管理和运行 Maven 项目中的单元测试。


http://www.ppmy.cn/ops/137186.html

相关文章

计算机网络的功能

目录 信息交换 资源共享 分布式处理 可靠性增强 集中管理 信息交换 计算机网络最基本的功能之一是允许不同设备之间的数据通信。这包括电子邮件的发送和接收、即时消息的传递、文件传输等。通过网络&#xff0c;用户可以轻松地与全球各地的其他人进行沟通和协作。 信息交…

Python开源项目月排行 2024年10月

#2024年10月2024年10月12日1OpenHands&#xff08;先前称为OpenDevin&#xff09;是一个基于人工智能的软件开发代理平台&#xff0c;旨在通过AI增强软件开发过程。该平台支持开发者执行各类任务&#xff0c;从代码编写到命令行操作&#xff0c;乃至网页浏览等&#xff0c;如同…

吸猫毛空气净化器哪个好?推荐除猫毛效果好的宠物空气净化器品牌

我家里养了五只猫咪&#xff0c;每天睡醒准备来杯咖啡的时候&#xff0c;总能看见猫毛。最尴尬的是这种现象&#xff0c;哪哪都有。养猫人真的每天都要生活在这个世界里面。平时和猫咪玩耍的时候也没有发现这么多猫毛啊。现在一到冬天不能开窗户&#xff0c;真的超级难受感觉每…

LeetCode 第 425 场周赛 个人题解

Q1. 最小正和子数组 原题链接 Q1. 最小正和子数组 思路分析 签到题&#xff0c;暴力就行 时间复杂度&#xff1a;O(N^2) AC代码 class Solution:def minimumSumSubarray(self, nums: List[int], l: int, r: int) -> int:n len(nums)res -1acc list(accumulate(num…

彻底解决 macOS 下Matplotlib 中文显示乱码问题

彻底解决 macOS 下Matplotlib 中文显示乱码问题 在使用 Python 的 Matplotlib 库进行数据可视化时&#xff0c;中文字符的显示常常会出现乱码问题&#xff0c;尤其在 macOS 系统上。在网上找了一大堆方法&#xff0c;花了很久&#xff0c;发现不是要安装各种字体就是要改配置&…

自定义协议

1. 问题引入 问题&#xff1a;TCP是面向字节流的&#xff08;TCP不关心发送的数据是消息、文件还是其他任何类型的数据。它简单地将所有数据视为一个字节序列&#xff0c;即字节流。这意味着TCP不会对发送的数据进行任何特定的边界划分&#xff0c;它只是确保数据的顺序和完整…

HarmonyOS开发者社区有奖征文二期活动开启!

HarmonyOS开发者社区有奖征文活动第二期如约而至&#xff01;在上一期的基础上&#xff0c;我们精心策划了更多样化的主题&#xff0c;旨在为开发者们提供一个更广阔的交流平台。无论您是想探讨HarmonyOS的技术细节&#xff0c;还是分享您的开发经验&#xff0c;或是记录您与Ha…

电脑自动关机时间如何定?Wise Auto Shutdown 设置关机教程

在日常使用电脑的过程中&#xff0c;有时我们需要让电脑在特定的时间自动关机&#xff0c;比如在下载大文件完成后、执行长时间的任务结束时&#xff0c;或者只是单纯想在某个预定时间让电脑自动关闭以节省能源。这时候&#xff0c;Wise Auto Shutdown 这款软件就能派上大用场了…