У меня есть машина на 32 ГБ и более 2000 тестовых случаев, использующих phpdbg для покрытия кода.
phpdbg -qrr -d memory_limit=-1./vendor/phpunit/phpunit/phpunit --debug --verbose
После запуска в течение некоторого времени выдает следующую ошибку даже memory_limit
это -1
Ошибка map (): [12] Не удается выделить память
[Неустранимая ошибка PHP: недостаточно памяти (выделено 5830606848) (попытка выделить 65536 байт)]
Вы, вероятно, теряете память и не очищаете ее. Существуют плагины, которые сообщают, сколько памяти использует каждый тест, и другие, которые попытаются выполнить автоматическую очистку — хотя с обновлением до PHPunit v6 + некоторым может потребоваться внимание для работы с классами тестового пространства пространства имен.
Тот, который пытается освободить память, — это «mybuilder / phpunit-accelerator», но если вы можете найти тестовые классы, особенно загруженные памятью, вы можете вручную обнулить переменные, используемые в функции teardown ().
Убедившись, что вы собираете только данные покрытия для своего собственного кода (src /, и, возможно, tests /), вы также сэкономите огромный объем памяти (и время) — но внесите в белый список каталог ‘src /’ и не пытайтесь попасть в черный список / исключить «продавец /».
Других решений пока нет …