phpdbg/phpunit выдает ошибку, даже если предел памяти равен -1

У меня есть машина на 32 ГБ и более 2000 тестовых случаев, использующих phpdbg для покрытия кода.

phpdbg -qrr -d memory_limit=-1./vendor/phpunit/phpunit/phpunit --debug --verbose

После запуска в течение некоторого времени, он выдает следующую ошибку даже memory_limit это -1

Ошибка map(): [12] Не удается выделить память [Неустранимая ошибка PHP: недостаточно памяти (выделено 5830606848) (попытка выделить 65536 байт) ]

1 ответ

Вы, вероятно, теряете память и не очищаете ее. Есть плагины, которые сообщают, сколько памяти использует каждый тест, и другие, которые будут пытаться автоматически очистить - хотя с обновлением до PHPunit v6+ некоторые могут нуждаться во внимании для работы с классами тестового пространства пространства имен.

Тот, который пытается освободить память, называется "mybuilder / phpunit-accelerator", но если вы можете найти тестовые классы, особенно загруженные памятью, вы можете вручную обнулить переменные, используемые в функции teardown().

Убедившись, что вы собираете только данные покрытия для своего собственного кода (src / и, возможно, tests/), вы также сэкономите огромный объем памяти (и время) - но внесите в белый список каталог 'src/' и не пытайтесь попасть в черный список / исключить "продавец /".

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