Инфекция вызывает исключение, но почему и как с этим бороться?

Задача состоит в том, чтобы бот правильно объяснил проблему.

Ошибка:

Перед запуском 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

Я надеюсь, что этот пост снова поможет кому-то еще. Я не удаляю сначала. Может, когда-нибудь другой мод.

Другие вопросы по тегам