Untitled

Мутационное тестирование

Напомню, что мутационное тестирование — это отличный способ убедиться в том, что написанные тесты – говно и ничего не тестируют даже при 100% покрытии.

Infection

Infection теперь поддерживает кастомные мутаторы. Вероятно, это будет полезно только авторам каких нибудь популярных пакетов. Для меня же это просто повод упомянуть крутой инструмент.

Pest

В PEST 3 будет мутационное тестирование. Нуно пишет, что наговнокодили его с нуля, а не обернули infection/infection.

Сам я кое где использую pest из-за плагина arch, чтобы в CI проверять не забыл ли убрать все trap()/dump()/etc из кода (пример). Если мутации в нём будут удобнее инфекций или покрывать больше кейсов, то их тоже буду использовать.

В базе pest — это враппер вокруг phpunit с некоторыми надстройками и своими плагинами. Несмотря на то, что по команде vendor/bin/pest запустятся и тесты phpunit, использовать его я всё-таки рекомендую отдельно и только в тех местах, которые не покрываются phpunit'ом.

Вот почему:

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

Pest-specific тесты (Arch) закинуть в pest.xml.dist.

./vendor/bin/pest --color=always --configuration pest.xml.dist