Question

J'utilise actuellement Zend Framework en collaboration avec PHPUnit pour effectuer des tests unitaires sur une application. Lorsque Hudson exécute la commande phpunit shell, la limite de mémoire PHP maximale est atteinte au cours de la génération de couverture de code. J'ai actuellement un total de 41 tests avec 334 assertions.

J'ai réussi à éliminer cette erreur en augmentant le paramètre Memory_limit à 768m en utilisant le -d memory_limit=768M changer; Cependant, je crains que, à mesure que la complexité augmente avec le nombre total de tests / assertions, je n'aurai pas assez de mémoire pour générer le HTML pour les statistiques de couverture de code.

OS: CentOS 5.5
Panneau de commande: Whm / cpanel
Serveur CI: 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/  

Erreur mortelle: taille de mémoire autorisée de 536870912 octets épuisés

Avant de commettre mes modifications et de laisser Hudson gérer le reste, j'utilise Windows 7 pour le développement. L'utilisation de la mémoire n'a jamais dépassé 340 Mo lors de l'exécution de la même commande dans W7.

Était-ce utile?

La solution

En réduisant le nombre de fichiers inclus dans la couverture du code, ainsi qu'en augmentant la limite de mémoire globale en PHP, j'ai pu tuer essentiellement cette erreur. L'ensemble du framework Zend était inclus dans la couverture du code, ce qui est très important.

Autres conseils

Avez-vous activé le profilage XDebug, si c'est le cas, essayez de le désactiver. J'ai déjà rencontré ce problème, et cela se résumait à des extensions en PHP (en particulier le profilage XDebug et / ou l'héritage incluse)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top