Seit dem Release bin ich Nutzer von Laravel Herd. Bisher war ich Nutzer von Laravel Valet, Herd (in Kombination mit dbngin) vereinfacht die Bereitstellung einer Laravel-Entwicklungsumgebung unter macOS aber nochmals enorm.
Beim ersten Ausführen von pestphp-Tests bin ich jedoch auf ein Problem gestoßen:
php artisan test -p
führte zu folgender Fehlermeldung:
.....................................................
In WorkerCrashedException.php line 41:
The test "PARATEST='1' TEST_TOKEN='10' UNIQUE_TEST_TOKEN='10_64c267b53c4d2' /Users/sebastian/dev/my_project/tests/Feature/ArchTest.php" failed.
Exit Code: 255(Unknown error)
Working directory: /Users/sebastian/dev/my_project
Output:
================
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /Users/sebastian/dev/my_project/vendor/nikic/php-parser/lib/PhpParser/Lexe
r.php on line 319
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /Users/sebastian/dev/my_project/vendor/pestphp/pest/src/Plugins/Actions/Ca
llsShutdown.php on line 1
Error Output:
================
paratest [--functional] [-m|--max-batch-size MAX-BATCH-SIZE] [--no-test-tokens] [--passthru-php PASSTHRU-PHP] [-p|--processes PROCESSES] [--runner RUNNER] [--tmp-dir TMP-DIR] [-v|--verbose] [--bootstrap BOOTSTRAP] [-c|--configuration CONFIGURATION] [--no-configuration] [--cache-directory CACHE-DIRECTORY] [--testsuite TESTSUITE] [--exclude-testsuite EXCLUDE-TESTSUITE] [--group GROUP] [--exclude-group EXCLUDE-GROUP] [--filter FILTER] [--process-isolation] [--strict-coverage] [--strict-global-state] [--disallow-test-output] [--dont-report-useless-tests] [--stop-on-defect] [--stop-on-error] [--stop-on-failure] [--stop-on-warning] [--stop-on-risky] [--stop-on-skipped] [--stop-on-incomplete] [--fail-on-incomplete] [--fail-on-risky] [--fail-on-skipped] [--fail-on-warning] [--order-by ORDER-BY] [--random-order-seed RANDOM-ORDER-SEED] [--colors [COLORS]] [--no-progress] [--display-incomplete] [--display-skipped] [--display-deprecations] [--display-errors] [--display-notices] [--display-warnings] [--teamcity] [--testdox] [--log-junit LOG-JUNIT] [--log-teamcity LOG-TEAMCITY] [--coverage-clover COVERAGE-CLOVER] [--coverage-cobertura COVERAGE-COBERTURA] [--coverage-crap4j COVERAGE-CRAP4J] [--coverage-html COVERAGE-HTML] [--coverage-php COVERAGE-PHP] [--coverage-text [COVERAGE-TEXT]] [--coverage-xml COVERAGE-XML] [--coverage-filter COVERAGE-FILTER] [--no-coverage] [--] [<path>]
Die Ursache des Problems deutet sich hier an: „Fatal error: Allowed memory size of 134217728 bytes exhausted“. Die Menge Arbeitsspeicher, die PHP nutzen darf, reicht nicht aus. Beheben lässt sich das Problem recht einfach.
- Klick auf das Menü-Icon von Herd
- Show php.ini anklicken
- Die php.ini im erscheinenden Finder-Fenster öffnen
- Folgenden Eintrag einfügen:
memory_limit = 256M
Dadurch wird das Speicher-Limit von den standardmäßig gesetzten 128MB auf 256MB erhöht. Beim nächsten Versuch, die Tests laufen zu lassen, klappte dann alles wie gewünscht.