Инфекция вызывает исключение, но почему и как с этим бороться?
Задача состоит в том, чтобы бот правильно объяснил проблему.
Ошибка:
Перед запуском Infection тесты проекта должны быть пройдены.
Инфекция запускает набор тестов в СЛУЧАЙНОМ порядке. Убедитесь, что ваши тесты не имеют скрытых зависимостей.Вы можете добавить эти атрибуты в
phpunit.xml
чтобы проверить это:Если вы не хотите, чтобы Infection запускал тесты в случайном порядке, установите
executionOrder
к некоторой стоимости, напримерПроверьте выполненную команду, чтобы определить проблему: '/usr/bin/php7.2' '-d' 'zend_extension=xdebug.so' '/mnt/e/dev/bin/phpunit' '--configuration' '/mnt/e/dev/var/ заражение /
инфекция / phpunitConfiguration.initial.infection.xml'' -vvv '
PHPUnit сообщил о коде выхода 143.
См. вывод PHPUnit ниже:
STDERR:
Не удается загрузить Xdebug - он уже был загружен
Я пытаюсь просто выполнить следующую инструкцию:
vendor/bin/infection --threads=10 --only-covered
Но когда я пробую тот оператор, который объясняется в этой ошибке, тесты будут выполняться успешно, но это только мои модульные тесты без тестирования на мутации.
Вот аннотация тега phpunit в моем phpunit.xml.dist
<phpunit .... backupGlobals="false" colors="false" bootstrap="/mnt/e/dev/RESTler/config/bootstrap.php" executionOrder="random" resolveDependencies="true" cacheResult="false" stopOnFailure="true" stderr="false" .../>
Версии:
- Версия PHPUnit: 7.5.15
- PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1
- Инфекция - Фреймворк тестирования мутаций PHP 0.14.2
- Symfony Framework 4.2
есть ли у кого-нибудь намек на то, что я могу попробовать, или где моя ошибка?
1 ответ
После долгого путешествия я кое-что выяснил. Но не поймите, почему он не работает с моей конфигурацией.
Это было правильное утверждение для меня после того, как я удалил xdebug.so
от моего php.ini
infection --threads=10 --only-covered --initial-tests-php-options='-d zend_extension=xdebug.so'
Я думал, что этого будет достаточно, но тут возникла проблема с memory_limit, которую можно исправить таким же образом.
infection --threads=10 --only-covered --initial-tests-php-options='-d zend_extension=xdebug.so -d memory_limit=-1'
Теперь он работает, и у меня есть несколько задач:)
.: убит, M: сброшен, S: обнаружен, E: фатальная ошибка, T: истекло время ожидания
......... M..MMMMMMM.MMMMM.MMMM.M.MMMMMMMM.MMMM.M (50 / 89) .....MM................МММММММ.ММММ.... (89 / 89)
Сгенерировано 89 мутаций:
45 mutants were killed 0 mutants were not covered by tests 44 covered mutants were not detected 0 errors were encountered 0 time outs were encountered
Метрики:
Mutation Score Indicator (MSI): 50% Mutation Code Coverage: 100% Covered Code MSI: 50%
если кто-то использует phpdbg
вместо того xdebug
и имеет эту проблему memory_limit, для меня она работает, если я перезаписываю новый php.ini для phpdbg в моем /etc/php/7.3/phpdbg/php.ini
Я надеюсь, что этот пост снова поможет кому-то еще. Я не удаляю сначала. Может, когда-нибудь другой мод.