JUnit 5 配置文件详解

server/2025/2/12 0:55:43/

JUnit 5 配置文件详解

JUnit 5 通过 junit-platform.properties 文件提供全局配置,允许开发者定制测试引擎、执行策略、日志行为等。以下是常用配置项及其含义,以及详细示例说明。


一、配置文件位置
  • 路径src/test/resources/junit-platform.properties
    若目录不存在需手动创建。

二、核心配置项及示例
1. 并行测试配置

控制测试的并发执行,提升测试速度。

配置项取值及含义示例值
junit.jupiter.execution.parallel.enabledtrue(启用并行) / false(禁用并行,默认)true
junit.jupiter.execution.parallel.mode.defaultconcurrent(并行) / same_thread(串行,默认)concurrent
junit.jupiter.execution.parallel.mode.classes.default类级别的并行模式,同上same_thread
junit.jupiter.execution.parallel.config.strategy线程分配策略:dynamic(动态) / fixed(固定) / custom(自定义)fixed
junit.jupiter.execution.parallel.config.fixed.parallelism固定线程数(当策略为 fixed 时有效)4

示例配置

# 启用并行测试
junit.jupiter.execution.parallel.enabled = true
# 默认并行模式
junit.jupiter.execution.parallel.mode.default = concurrent
# 类内方法串行执行(避免共享资源冲突)
junit.jupiter.execution.parallel.mode.classes.default = same_thread
# 固定线程池大小为 4
junit.jupiter.execution.parallel.config.strategy = fixed
junit.jupiter.execution.parallel.config.fixed.parallelism = 4

2. 测试过滤配置

按标签、包名或类名过滤测试用例。

配置项取值及含义示例值
junit.jupiter.include.tags包含指定标签的测试(支持 AND/OR 逻辑)fast | unit
junit.jupiter.exclude.tags排除指定标签的测试slow & integration
junit.jupiter.include.packages包含指定包下的测试类(逗号分隔)com.example.unittest
junit.jupiter.exclude.classes排除指定测试类(全限定名,逗号分隔)com.example.LegacyTest

示例配置

# 仅运行标记为 "fast" 或 "unit" 的测试
junit.jupiter.include.tags = fast | unit
# 排除标记为 "slow" 且 "integration" 的测试
junit.jupiter.exclude.tags = slow & integration
# 仅扫描 com.example.unittest 包下的测试类
junit.jupiter.include.packages = com.example.unittest

3. 参数化测试配置

控制参数化测试的数据源和显示格式。

配置项取值及含义示例值
junit.jupiter.params.displayname.default参数化测试的默认显示名称格式(支持 {index}, {arguments} 占位符)[{index}] {arguments}
junit.jupiter.params.converter.enum.default枚举参数转换模式:ignore_case(忽略大小写) / exact(精确匹配,默认)ignore_case

示例配置

# 参数化测试显示名称格式
junit.jupiter.params.displayname.default = [参数组 {index}] 参数: {arguments}
# 枚举参数忽略大小写
junit.jupiter.params.converter.enum.default = ignore_case

4. 测试引擎配置

禁用或启用特定测试引擎。

配置项取值及含义示例值
junit.jupiter.testengine.id.filter启用或禁用测试引擎(逗号分隔,include 包含,exclude 排除)include:junit-jupiter

示例配置

# 仅启用 Jupiter 引擎,禁用 Vintage(JUnit 4 兼容)
junit.jupiter.testengine.id.filter = include:junit-jupiter, exclude:junit-vintage

5. 条件测试扩展配置

控制条件测试的行为。

配置项取值及含义示例值
junit.jupiter.conditions.deactivate禁用所有条件测试(true 禁用,false 启用)true

示例配置

# 禁用所有条件测试(如 @EnabledIfEnvironmentVariable)
junit.jupiter.conditions.deactivate = true

6. 日志与输出配置

调整测试执行日志的详细程度。

配置项取值及含义示例值
logging.level.root日志级别:TRACE, DEBUG, INFO, WARN, ERROR(需结合 SLF4J 实现)DEBUG

示例配置

# 启用 DEBUG 级别日志
logging.level.root = DEBUG

三、完整配置文件示例
# junit-platform.properties# 并行测试配置
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.mode.classes.default = same_thread
junit.jupiter.execution.parallel.config.strategy = fixed
junit.jupiter.execution.parallel.config.fixed.parallelism = 4# 测试过滤
junit.jupiter.include.tags = fast | unit
junit.jupiter.exclude.tags = slow & integration
junit.jupiter.include.packages = com.example.unittest# 参数化测试显示格式
junit.jupiter.params.displayname.default = [参数组 {index}] 参数: {arguments}# 禁用 Vintage 引擎
junit.jupiter.testengine.id.filter = exclude:junit-vintage# 日志配置
logging.level.root = INFO

四、总结

通过 junit-platform.properties 文件,可以实现以下目标:

  • 提升测试效率:通过并行执行加速测试。
  • 精准控制测试范围:按标签、包名或类名过滤测试。
  • 增强可读性:自定义参数化测试的显示名称。
  • 灵活兼容性:禁用不必要的测试引擎(如 JUnit 4)。

建议根据项目需求逐步调整配置,并通过日志验证配置效果。


http://www.ppmy.cn/server/166901.html

相关文章

Ansible模块

Ansible模块 使用 ansible-doc --list可以查看Ansible支持的所有模块 Ansible模块用法 ansibel 主机名 -m 模块名 [模块参数] Ansible模块帮助查询 ansible-doc -s 模块名 通过以上命令可以查看Ansible中某个模块的参数和用法 检测类 ping 用于检测目标主机连通性返回…

大模型基本原理(四)——如何武装ChatGPT

传统的LLM存在几个短板:编造事实、计算不准确、数据过时等,为了应对这几个问题,可以借助一些外部工具或数据把AI武装起来。 实现这一思路的框架包括RAG、PAL、ReAct。 1、RAG(检索增强生成) LLM生成的内容会受到训练…

组件库选择:ElementUI 还是 Ant Design

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

pycharm ai插件

PyCharm中的AI插件为开发者提供了强大的智能辅助功能,这些插件能够显著提升编码效率、优化代码质量,并提供实时的编程建议和帮助。以下是一些主要的PyCharm AI插件及其功能介绍: 一、CodeMoss(ChatGPT Free) 简介:CodeMoss是一款集成在PyCharm内的顶级AI插件,全称“Cha…

ctf网络安全大赛python ctf网络安全大赛

ctf 网络安全比赛 CTF(CaptureTheFlag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式…

棱光PDF工具箱:一站式解决你的各种需要

今天为大家介绍一款非常实用且完全免费的PDF工具箱——棱光PDF工具箱。它功能强大,操作简单,能够满足你对PDF文件的各种处理需求,包括添加水印、去除水印、批量转换格式等,绝对值得推荐! 棱光PDF工具箱 棱光PDF工具箱…

【C/C++算法】从浅到深学习---双指针算法(图文兼备 + 源码详解)

绪论:冲击蓝桥杯一起加油!! 每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论​: 本章是新开篇章也是算法的第一篇章----双指针算法,双指针算法是算法中非常…

使用 java -jar 命令启动 Spring Boot 应用时,指定特定的配置文件的几种实现方式

在使用 java -jar 命令启动 Spring Boot 应用时,如果你想要指定特定的配置文件,可以通过以下几种方式来实现: 使用 --spring.config.location 指定配置文件路径 你可以使用 --spring.config.location 参数来指定一个或多个配置文件的路径。例…