Attualmente sto utilizzando Zend Framework in combinazione con PHPUnit per condurre test di unità su un'applicazione. Quando Hudson esegue il comando shell PHPUnit, il limite massimo di memoria PHP viene raggiunto a volte durante la generazione della copertura del codice. Al momento ho un totale di 41 test con 334 asserzioni.PHPUna generazione della copertura di codice che causa esaurimento della memoria
Ho eliminato con successo questo errore elevando l'impostazione memory_limit a 768M utilizzando lo switch -d memory_limit=768M
; tuttavia, sono preoccupato che man mano che la complessità aumenta con il numero totale di test/asserzioni, non avrò abbastanza memoria per generare l'HTML per le statistiche sulla copertura del codice.
OS: CentOS 5.5
Pannello di controllo: WHM/cPanel
CI Server: Hudson
/usr/local/bin/phpunit
--verbose
-d memory_limit=512M
--log-junit ../../build/logs/phpunit.xml
--coverage-clover ../../build/logs/coverage/clover.xml
--coverage-html ../../build/logs/coverage-html/
Fatal error: Allowed memory size of 536870912 bytes exhausted
Prima di commettere i miei cambiamenti e lasciando Hudson gestire il resto, ho usa Windows 7 per lo sviluppo. L'utilizzo della memoria non ha mai superato 340 MB mentre si eseguiva lo stesso comando in W7.
Tutti i test in una classe? – allnightgrocery
No, i test sono divisi tra quattro file diversi. Questi test sono relativamente semplici, specialmente rispetto a quello che abbiamo programmato. –
:) grazie per aver postato la tua soluzione. Ho avuto il problema che hai elencato e ti ho davvero hackerato. Ogni volta che qualcosa sarebbe venuto fuori (memoria esaurita in /pear/phpunit/framework/whatever.php on line 1999) dovrei digitare 'sudo vi /.../ whatever.php' e aggiungere una riga' set_ini ("memory_limit ", "1000M")'. Probabilmente non la migliore pratica;) –