什么是 Testbench Workbench
Orchestra Testbench 面向测试,但结合 Workbench 后可以在包仓库内构建一个小型 Laravel 应用,可以在本地跑起来。 它用于补充package-testing 中的测试,方便进行 UI 检查、路由联调、带 Seeder 的验证等。
搭建
1
安装 Testbench
2
创建 Workbench
- 创建
workbench/目录结构 - 向
composer.json的autoload-dev添加 Workbench 命名空间 - 向
composer.json的scripts添加构建用命令
3
构建并启动
workbench:install 会一次性搭建 workbench/ 目录、autoload-dev 与相关脚本。composer.json 会新增以下脚本。
用 testbench.yaml 定义开发环境
Workbench 的行为由放在根目录的testbench.yaml 控制。
环境变量也可以在
testbench.yaml 中管理。
workbench 目录结构
workbench
app
Http
Models
Providers
bootstrap
config
database
factories
migrations
seeders
public
resources
routes
storage
Workbench 提供的主要功能
WorkbenchServiceProvider
创建 Workbench 专用 Service Provider,用于演示相关的注册处理。路由与 Controller
可以在workbench/routes/web.php 或 workbench/routes/api.php 放置验证用路由。
迁移与 Seeder
workbench/database/migrations 与 workbench/database/seeders 可用于以接近生产的数据结构验证。
启动服务与 CLI 确认
可通过vendor/bin/testbench 执行 Artisan 命令。
使用 WithWorkbench trait 进行测试
使用WithWorkbench trait,可以将 testbench.yaml 的配置自动应用到测试中。
与测试的联动
将 Workbench 用作「手动检查、演示应用」,Testbench 测试代码用作「自动验证」,可以让运营更顺畅。- 自动化:
tests/防止回归 - 手动确认:
workbench/验证界面、动线、集成行为
故障排查
Workbench 构建失败
Workbench 构建失败
请确认
testbench.yaml 的语法与 Provider 设置。可能是 YAML 缩进错误。路由未加载
路由未加载
确认路由文件路径以及 WorkbenchServiceProvider 的注册。检查
testbench.yaml 的 discovers.web 是否为 true。出现数据库错误
出现数据库错误
确认迁移路径是否正确。若使用 SQLite,检查是否包含
create-sqlite-db 构建步骤。相关页面
使用 Orchestra Testbench 测试 Laravel 包
先了解包测试基础设施的搭建方法。
包的版本兼容性管理
了解 Laravel 与 Testbench 的对应关系以及 CI 矩阵运营。