Skip to main content

什麼是 Testbench Workbench

Orchestra Testbench 是為測試設計,但搭配 Workbench 使用,可於套件儲存庫內建立小型 Laravel 應用程式並在本機執行。 在補足以 package-testing 建立的測試同時,適合用於 UI 確認、路由連通、附 Seeder 的驗證。

設定

1

安裝 Testbench

2

建立 Workbench

此指令會一併執行以下作業:
  • 建立 workbench/ 目錄結構
  • composer.jsonautoload-dev 加入 Workbench 命名空間
  • composer.jsonscripts 加入 build 用指令
附加選項:
  • --force:覆寫既有檔案
  • --basic:省略路由與 package discovery 設定的簡潔配置
  • --devtool:啟用 DevTool 支援
3

Build 並啟動

workbench:install 會一併整備 workbench/ 目錄、autoload-dev 及相關 script。
安裝後,composer.json 會加入以下 script。

以 testbench.yaml 定義開發環境

Workbench 的行為由置於根目錄的 testbench.yaml 管理。
testbench.yaml 可能包含依環境不同的設定,建議加入 .gitignore 使其排除於 commit 對象之外。改為在儲存庫中放置 testbench.yaml.example 作為範本。
主要設定選項: 環境變數也可透過 testbench.yaml 管理。

workbench 目錄結構

workbench
app
Models
bootstrap
config
database
factories
migrations
public
storage

Workbench 提供的主要功能

WorkbenchServiceProvider

建立 Workbench 專用的服務提供者,執行 Demo 用的註冊處理。

路由與 Controller

可在 workbench/routes/web.phpworkbench/routes/api.php 放置驗證路由。

Migration 與 Seeder

使用 workbench/database/migrationsworkbench/database/seeders,可以以接近實際運行的資料結構驗證。
以 Seeder 產生測試資料。

啟動服務與 CLI 確認

可透過 vendor/bin/testbench 執行 Artisan 指令。

使用 WithWorkbench trait 測試

使用 WithWorkbench trait 後,testbench.yaml 的設定也會套用至自動測試。

與測試的搭配

若將 Workbench 作為「手動確認、Demo 用應用程式」、Testbench 的測試程式碼作為「自動驗證」分工,較易操作。
  • 自動化:於 tests/ 防止 regression
  • 手動確認:於 workbench/ 確認畫面、動線、整合行為

疑難排解

請確認 testbench.yaml 的語法與 Provider 設定。YAML 的縮排錯誤可能為原因。
請確認路由檔案路徑與 WorkbenchServiceProvider 的註冊。確認 testbench.yamldiscovers.web 是否為 true
請確認 Migration 的路徑是否正確。若使用 SQLite,請確認是否包含 create-sqlite-db build 步驟。

相關頁面

以 Orchestra Testbench 測試 Laravel 套件

先確認套件測試基礎的建立方式。

套件的版本相容性管理

確認 Laravel 與 Testbench 的對應表及 CI matrix 運行。
最後修改於 2026年8月2日