如何通过Composer安装和使用Pest,下一代PHP测试框架?

尼克
发布: 2025-12-20 11:10:03
原创
581人浏览过
Pest 可通过 Composer 安装并兼容 Laravel 与纯 PHP 项目:Laravel 中执行 composer require pestphp/pest --dev --with-all-dependencies 后 vendor/bin/pest --init;非 Laravel 项目则先 composer require pestphp/pest --dev 再 vendor/bin/pest --init 并选 Plain PHP 模式,生成 tests/Pest.php 和 phpunit.xml;测试文件置于 tests/ 目录、以 Test.php 结尾,使用 it() 或 describe() 编写函数式测试,核心断言为 expect();所有命令均通过 vendor/bin/pest 执行,支持运行全部/单个/过滤测试、彩色详细输出及覆盖率报告;Pest 与 PHPUnit 共存且可逐步迁移,复用 phpunit.xml 配置。

如何通过composer安装和使用pest,下一代php测试框架?

直接用 Composer 安装 Pest 很简单,但要真正用起来,得配合 Laravel 项目结构或手动配置测试环境,否则会报错或无法运行。

安装 Pest(支持 Laravel 和纯 PHP 项目)

Pest 推荐与 Laravel 一起使用,也支持独立 PHP 项目。安装前确保已安装 Composer 和 PHP 8.0+。

  • 在 Laravel 项目中:运行 composer require pestphp/pest --dev --with-all-dependencies,然后执行 vendor/bin/pest --init 初始化配置
  • 在非 Laravel 的 PHP 项目中:先运行 composer require pestphp/pest --dev,再手动初始化:vendor/bin/pest --init,选择 "Plain PHP" 模式
  • 初始化后会生成 tests/Pest.php(入口文件)和 phpunit.xml(Pest 兼容 PHPUnit 配置)

编写第一个 Pest 测试文件

Pest 使用函数式语法,比 PHPUnit 更简洁。测试文件默认放在 tests/ 目录下,以 Test.php 结尾(如 ExampleTest.php)。

  • 基础写法示例:
    it('adds two numbers', function () {
      expect(2 + 3)->toBe(5);
    });
  • expect() 是 Pest 的核心断言函数,自动启用链式断言(无需 use 语句)
  • 支持分组测试:describe('Math operations', function () { it('adds correctly', ...); });

运行测试和常用命令

所有命令都通过 vendor/bin/pest 执行,它其实是 PHPUnit 的轻量封装。

JTBC网站内容管理系统5.0.3.1
JTBC网站内容管理系统5.0.3.1

JTBC CMS(5.0) 是一款基于PHP和MySQL的内容管理系统原生全栈开发框架,开源协议为AGPLv3,没有任何附加条款。系统可以通过命令行一键安装,源码方面不基于任何第三方框架,不使用任何脚手架,仅依赖一些常见的第三方类库如图表组件等,您只需要了解最基本的前端知识就能很敏捷的进行二次开发,同时我们对于常见的前端功能做了Web Component方式的封装,即便是您仅了解HTML/CSS也

JTBC网站内容管理系统5.0.3.1 3
查看详情 JTBC网站内容管理系统5.0.3.1

立即学习PHP免费学习笔记(深入)”;

  • 运行全部测试:vendor/bin/pest
  • 运行单个文件:vendor/bin/pest tests/ExampleTest.php
  • 运行带关键词的测试:vendor/bin/pest --filter adds
  • 启用颜色、详细输出和失败时显示堆vendor/bin/pest --colors --verbose --debug
  • 生成测试覆盖率报告(需安装 php-xdebug 或 phpdbg):vendor/bin/pest --coverage

与 PHPUnit 共存和迁移技巧

Pest 底层完全兼容 PHPUnit,可与现有 PHPUnit 测试并存。已有项目可逐步迁移。

  • 保持 tests/ 下同时存在 *Test.php(PHPUnit)和 *Test.php(Pest),两者都能被 vendor/bin/pest 运行
  • 将 PHPUnit 类写法转为 Pest 函数式:去掉 class XXXTest extends TestCase,直接用 it()test()
  • 自定义 PHPUnit 配置(如 bootstrap、paths)仍通过 phpunit.xml 控制,Pest 会读取它

以上就是如何通过Composer安装和使用Pest,下一代PHP测试框架?的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号