JUnit 5.6.0 发布了。JUnit 是一个 Java 语言的单元测试框架,它有自己的 JUnit 扩展生态圈,多数 Java 开发环境都已经集成了JUnit 作为单元测试的工具。JUnit 测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。另外 JUnit 是在极限编程和重构中被极力推荐使用的工具。
JUnit 5.6.0 = Platform 1.6.0 + Jupiter 5.6.0 + Vintage 5.6.0,也就是由三个不同的模块组成:
- JUnit 平台,其主要作用是在 JVM 上启动测试框架。它定义了一个抽象的 TestEngine API 来定义运行在平台上的测试框架,同时还支持通过命令行、Gradle 和 Maven 来运行平台。
- JUnit Jupiter,包含了 JUnit 5 最新的编程模型和扩展机制。
- JUnit Vintage,允许在平台上运行 JUnit 3 和 JUnit 4 的测试用例。
JUnit 5 对 Java 运行环境的最低要求是 Java 8,同时也兼容测试旧版本 JDK 编译出来的代码,5.6.0 整体改进:
- 发布针对所有工件的 Gradle Module Metadata
- 所有二进制 JAR 中发布 OSGi 元数据
- Javadoc 现在包含一个模块 API 概述页面
主要更新内容包括:
- 新的
@EnabledForJreRange
和@DisabledForJreRange
执行条件 @Order
允许指定相对顺序- 参数名包含在参数化测试调用的默认显示名中
@CsvSource
和@CsvFileSource
的改进- 新的
TestInstancePreDestroyCallback
扩展 API - Vintage 引擎的性能改进和 bug 修复
- 在测试发现和执行期间改进了针对故障的错误报告
- 支持在标记表达式中使用
any()
和none()
org.junit.platform.console
现在提供了java.util.spi.ToolProvider
DiscoverySelectors
用于继承的嵌套类中的测试- OSGi 元数据
- 小 bug 修复和改进
具体的模块更新情况,查看更新说明: