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 用事件系统替换了 TestListener
和 TestHook
接口:(几乎)现在一切都是事件。所有到控制台和日志文件的输出现在都基于事件。
测试结果与测试问题
PHPUnit 10 在测试结果(错误、失败、不完整、跳过或通过)和测试问题(被认为有风险、触发警告……)之间引入了明确的区分。
PHPUnit 10 的错误处理程序不再将 E_(USER_)WARNING
、 E_(USER_)NOTICE
、 E_(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.
入门教程 | 更新公告