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/' и не пытайтесь попасть в черный список / исключить "продавец /".