Testbench Workbenchとは
Orchestra Testbench はテスト向けですが、Workbenchを組み合わせるとパッケージリポジトリ内に小さなLaravelアプリを作って手元で動かせます。package-testing で作ったテストを補完しつつ、UI確認、ルート疎通、シーダー付き検証を進めたいときに使います。
セットアップ
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専用のサービスプロバイダーを作成して、デモ用の登録処理を行います。ルートとコントローラ
workbench/routes/web.php や workbench/routes/api.php に検証ルートを置けます。
マイグレーションとSeeder
workbench/database/migrations と workbench/database/seeders を使うと、実運用に近いデータ構造で検証できます。
サービス起動とCLI確認
vendor/bin/testbench 経由でArtisanコマンドを実行できます。
WithWorkbenchトレイトを使ったテスト
WithWorkbench トレイトを使うと、testbench.yaml の設定が自動テストにも適用されます。
テストとの連携
Workbenchは「手動確認・デモ用アプリ」、Testbenchのテストコードは「自動検証」として役割分担すると運用しやすくなります。- 自動化:
tests/で回帰を防ぐ - 手動確認:
workbench/で画面・導線・統合挙動を確認する
トラブルシューティング
Workbenchがビルドできない
Workbenchがビルドできない
testbench.yaml の構文とプロバイダー設定を確認してください。YAMLのインデントエラーが原因になることがあります。ルートが読み込まれない
ルートが読み込まれない
ルートファイルのパスとWorkbenchServiceProviderの登録を確認してください。
testbench.yaml の discovers.web が true になっているか確認します。データベースエラーが発生する
データベースエラーが発生する
マイグレーションのパスが正しいか確認してください。SQLiteを使う場合は
create-sqlite-db ビルドステップが含まれているか確認します。関連ページ
Orchestra TestbenchでLaravelパッケージをテストする
パッケージテスト基盤の作り方を先に確認します。
パッケージのバージョン互換性管理
LaravelとTestbenchの対応表とCIマトリクス運用を確認します。