
Напомню, что мутационное тестирование — это отличный способ убедиться в том, что написанные тесты – говно и ничего не тестируют даже при 100% покрытии.
Infection теперь поддерживает кастомные мутаторы. Вероятно, это будет полезно только авторам каких нибудь популярных пакетов. Для меня же это просто повод упомянуть крутой инструмент.
В PEST 3 будет мутационное тестирование. Нуно пишет, что наговнокодили его с нуля, а не обернули infection/infection.
Сам я кое где использую pest из-за плагина arch, чтобы в CI проверять не забыл ли убрать все trap()/dump()/etc из кода (пример). Если мутации в нём будут удобнее инфекций или покрывать больше кейсов, то их тоже буду использовать.
В базе pest — это враппер вокруг phpunit с некоторыми надстройками и своими плагинами. Несмотря на то, что по команде vendor/bin/pest запустятся и тесты phpunit, использовать его я всё-таки рекомендую отдельно и только в тех местах, которые не покрываются phpunit'ом.
Вот почему:
Не работают фичи типа runInSeparateProcess.
На вкус и цвет, как говорится, но pest предлагает отвратительный синтаксис юнитов:

Скуфу не нравится синтаксис песта
Плохо поддерживается IDE. Наличие плагина не спасет: запустить какой-то один тест из интерфейса PHP Storm не получится.

Даже прыгнуть к сорцам не предлагает
В общем, если ты не скуф, тебе нравится розовый или просто нужны какие-то фичи песта, вот короткий гайд, чтобы не наступать на грабли:
Раскидать тесты по папкам.

Сделать копию конфига phpunit.xml.dist, обозвать pest.xml.dist и удалить из него всё лишнее. Да, это обособленный конфиг для pest, иначе он нам всё испортит.
Разделить на testsuites . Например phpunit будет запускать Feature и Unit тесты, ведь в этом плане он нас полностью устраивает:

phpunit.xml.dist
Pest-specific тесты (Arch) закинуть в pest.xml.dist.
./vendor/bin/pest --color=always --configuration pest.xml.dist