PHPUnit 10 正式发布,PHP 单元测试框架


PHPUnit 是一个轻量级的 PHP 测试框架。它是在 PHP5 下面对 JUnit3 系列版本的完整移植,是 xUnit 测试框架家族的一员 (它们都基于模式先锋 Kent Beck 的设计)。

PHPUnit 10 现已发布,这是 PHPUnit 项目历史上最重要的版本。此版本之于 PHPUnit 就像 PHP 7 之于 PHP:大规模清理、重构和现代化,为未来的开发奠定了基础。

注意:PHPUnit 10 需要 PHP 8.1 或更高版本。另请注意,PHPDBG 和 Xdebug 2 不再是受支持的代码覆盖信息来源,需要使用 PCOV 或 Xdebug 3 来收集、处理和报告代码覆盖率信息。

具体来说,PHPUnit 10 版本添加了新功能,修改和删除了现有功能,并修复了错误。

以下是 PHPUnit 10 的大型更改

Event System 事件系统

以前版本的 PHPUnit 为 PHPUnit 测试运行程序的扩展开发人员提供了 TestListener 接口和 TestHook 接口。这两种扩展 PHPUnit 测试运行器的方法都有严重的缺点。 PHPUnit 10 用事件系统替换了 TestListenerTestHook 接口:(几乎)现在一切都是事件。所有到控制台和日志文件的输出现在都基于事件。

测试结果与测试问题

PHPUnit 10 在测试结果(错误、失败、不完整、跳过或通过)和测试问题(被认为有风险、触发警告……)之间引入了明确的区分。

PHPUnit 10 的错误处理程序不再将 E_(USER_)WARNINGE_(USER_)NOTICEE_(USER_)DEPRECATED 等转换为异常。因此,例如,当 E_USER_NOTICE 被触发时,测试不再被强行中止。

默认情况下,PHPUnit 的测试运行器不显示有关弃用、通知或警告的详细信息。如果想要显示这些详细信息,必须使用 CLI 选项 --display-deprecations--display-notices--display-warnings (或其对应的 XML 配置文件)。

元数据

PHPUnit 10 引入了对 PHP 8 属性的支持,用于将元数据添加到测试类和测试方法以及测试代码单元。

但仍然支持代码注释中的老式注释,和将元数据附加到代码单元的现代属性。

下载方式

此 PHP 存档 (PHAR) 包含 PHPUnit 所需的一切。

➜ wget -O phpunit https://phar.phpunit.de/phpunit-10.phar

➜ chmod +x phpunit

➜ ./phpunit --version
PHPUnit 10.0.0 by Sebastian Bergmann and contributors.

或者使用 Composer 下载并安装 PHPUnit 及其依赖项。

➜ composer require --dev phpunit/phpunit ^10

➜ ./vendor/bin/phpunit --version
PHPUnit 10.0.0 by Sebastian Bergmann and contributors.

 

入门教程 | 更新公告


相關推薦

2023-03-15

轻量级 PHP 测试框架 PHPUnit 的作者 Sebastian Bergmann 已将该项目的信息上传到 OSS Compass 开源生态评估平台了,用于对 PHPUnit 的社区生态进行状态评估。 PHPUnit 是一个轻量级的 PHP 测试框架,它是在 PHP5 下面对 JUnit3 系

2022-08-25

哪里设置断点,这就是全局条件断点有用的地方。 调试 PHPUnit 测试时的交互式调试控制台 在调试测试时遇到断点时,可以立即在控制台中使用代码。 使用 Xdebug 进行返回值调试 Xdebug 3.2 将有一个额外的“从函数返回”调试步

2022-10-05

MDword 是 PHP 生成 word 的另一工具。 更新日志 合并表格单元格 已知 bug 修复 项目介绍 主要用途:动态生成 word 优势:生成 word 只需关注动态数据及逻辑,无需关注式样的调整(式样可以借助 office word 调整母版即可) 与

2021-12-24

,团队还必须确保它们通过必要的安全和认证流程——其正式名称是安全门流程 (Safety Gate process)。它由 ESA 和 NASA 设立,以确保进入到国际空间站的任何物品都可以安全地在空间站上运行。 这些测试包括: 振动测试:为了

2021-11-23

献者交流此事,包括 Sebastian Bergmann 和 Stefan Priebsch(PHPUnit,thePHP.cc)。而 PHP 主要贡献者 Nikita Popov 将专注于 LLVM 的决定加速了成立基金会的进程。据悉,Nikita Popov 将于 12 月 1 日离开 JetBrains。 公告表示,PHP 基金会将

2022-05-30

件中的@props和@aware指令。 可以配置在运行 PHP CS Fixer 或 PHPUnit 等工具时要使用的 PHP 二进制文件。 更多内容请在发行公告中查阅。

2024-10-16

bsp;xuri.me/excelize/zh-hans 版本说明 2024 年 10 月 15 日,社区正式发布了 2.9.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,此版本中最显著的变化包括: 兼容性提示 将数

2023-10-11

MDword 是 PHP 生成 word 的另一工具。 新特性 / Bug 修复: 根据md5值替换图片维持比例不变。 MDWORD_LINK支持style参数。 获取media列表。(母版word中的图片或者文件) 项目介绍 主要用途:动态生成 word 优势:生成 word 只需关

2023-06-08

,百度智能云推出了基于大模型的“Comate”代码助手,并正式开放邀请测试。 据介绍,借助文心大模型的理解、推理能力,“Comate”可实现代码的快速补齐、自然语言推荐代码、自动查找代码错误,全面提升开发者研发效率。

2024-03-16

大家好,禅道20.0.beta2发布啦,本次发布修复了若干Bug,提升了系统的稳定性。 注意:该版本为beta版本,不建议用于生产环境,欢迎大家下载试用。 禅道20版本对代码进行了大规模重构,从框架层到业务代码都进行了大幅改进

2023-04-11

ize 中文文档: xuri.me/excelize/zh-hans 2023年4月10日,社区正式发布了 2.7.1 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog。 此版本中最显

2024-02-03

MiniFramework 2.10 已经发布,超轻量级的国产 PHP 框架 此版本更新内容包括: 版本变化 新增常量 ERROR_PAGE,默认值为空,用于声明自定义错误页面。 新增支持输出自定义错误页的特性。 新增自定义错误页的示例代码。 新

2022-07-06

OpenAPI Generator v6.0.1 现已发布。OpenAPI Generator 可用于在给定 OpenAPI 规范(v2, v3)的情况下自动生成 API 客户端库、server stubs、文档以及配置。 v6.0.1 是一个包含增强功能的补丁版本,修复了涵盖 20 种编程语言的错误。有关更改

2022-12-17

Next.js 框架背后的开发商 Vercel 宣布推出 Edge Functions,现已面向所有客户全面推出 (GA)。 根据介绍,Vercel Edge Functions 是 JavaScript、TypeScript 或 WebAssembly functions,通常比传统的 Serverless compute 更高效、更快速,因为它们在一个更精