PHP Infection

Любопытный инструмент, который меняет код, но не меняет тесты, и если код изменен, а тест пройден, то это ошибка.

Термины

  • Мутант - функция, которая была изменена инструментом infection
  • Unit-тест - убийца мутантов

В настоящий момент с помощью двух шагов и флагов мы реализовали ситуацию:

1. Говорим infection-у, чтобы он сгенерировать xml-файл покрытия только для юнит-тестов (infection запустит phpunit c флагом --coverage-xml):

--testsuite=Unit

2. Говорим infection-у, чтобы он создал мутантов согласно coverage-xml (см. пункт 1):

--only-covered

2.1 при этом говорим infection-у, сколько процентов мутантов должно быть уничтожено:

--min-covered-msi=100 -

2.2. при этом говорим infection-у, показывать детальную информацию по выжившим мутантам:

-s 

Оптимизация

Если при прогоне Unit-тестов генерировать coverage.xml, то тогда infection-у можно сказать, чтобы он использовал уже существующий файл coverage.xml и тогда infection-у можно не указывать "--testsuite=Unit"

Источники: 1 - 2 - 3


25.02.2011 14:48

Комментарии

Комментариев пока нет.


Copyrights © 2007 - 2026 YaPro.Ru