Môj predchádzajúci Laravel
test watcher som úspešne
používal veľmi dlho, keď som bol na Linuxe. Teraz na Macu však nefunguje,
pretože Mac nepodporuje inotifywait.
Mac však podporuje niečo podobné, čo sa nazýva fswatch, nainštalovateľné
cez Brew:
brew install fswatch
Funguje to však trochu inak ako inotifywait, aj syntax sa líši, takže nie
je to priama náhrada. Pomerne rýchlo som to dokázal rozbehať tak, aby
spúšťalo všetky testy pri akejkoľvek zmene súvisiacej s PHP, ale tie na
mojom projekte trvajú niekoľko sekúnd a mal som problém prísť na to, ako
sledovať len jeden súbor s fswatch. Keď som na to prišiel, rozhodol som
sa to tu zdieľať, pretože som jednoduchým vyhľadávaním nikde inde túto
informáciu nenašiel:
fswatch --recursive --exclude="database.sqlite" \
./resources ./tests ./app ./routes ./database | xargs -n1 sh -c \
'./vendor/bin/sail exec -T laravel.test php artisan test --ansi tests/Feature/MyTest.php'
Na mojom stroji to funguje perfektne, dokonale napodobňujúc predchádzajúcu
funkcionalitu inotifywait, na ktorú som bol zvyknutý. Nezabudnite na
prepínač --ansi, inak môžu chýbať farby. Užívajte!