Fedora & l’assurance qualité sur les projets php

Guillaume Kulakowski par Guillaume Kulakowski dans Fedora 4 décembre 2009 4
php

La qualité est un problème récurent dans les applications php. En effet, le php est un langage hautement permissif et très facile d’accès. Ceci donne certains codes disponibles sur la toile de bien piètre qualité voir carrément nocifs pour ceux ayant un tant soit peu de trafique sur leur serveur. Lors de ma participation aux derniers eZ Day, j’ai eu la chance d’assister à une conférence donnée par Sebastian Bergmann le Mr de qualité en php et j’ai trouvé ses initiatives plutôt intéressantes.

Sur le plan professionnel, nous avons également fait le choix de mettre en avant la qualité dans la réalisation de nos projets et c’est donc tout naturellement que nous nous sommes tournés vers une solution d’intégration continue et la suite d’utilitaire phpUnit.

Pour ce qui est des PIC compatibles php à l’heure où j’écris ces quelques lignes il en existe que 2 à savoir phpUnderControl et Xinc. La seconde ne m’ayant pas donné entière satisfaction, j’ai donc fait le choix d’utiliser phpUC. Le choix est d’autant plus judicieux qu’elle s’intègre parfaitement avec eZ Publish (quelques modifications pour lui donner à manger un doc Doxygen à la place de phpDocumentor).

Bref, autant de disgrétions pour annoncer que Christof Damian et moi-même (entre autre…) avons entrepris un travail de packaging qui fait qu’aujourd’hui la plupart des outils d’assurance qualité pour le php sont disponibles dans Fedora et RHEL (merci Remi).

  • yum install php-phpunit-phploc
  • yum --enablerepo=updates-testing install php-phpunit-phpcpd
  • yum install php-pear-PHPUnit
  • yum --enablerepo=updates-testing install php-phpunit-File-Iterator
  • etc…

Ne reste plus que phpUnderControl… Allez, maintenant vous n’avez plus d’excuses pour produire du code de daube avec de la duplication de code partout et de la complexité cyclomatique dans tout les sens ;-).

Commentaires

Eric

Enfin je trouve quelqu'un qui utilise phpUnderControl :D

Par contre j'ai un gros problème avec phpUC : à chaque fois que les tests unitaires d'un projet se lancent, le processus ne s'arrête jamais une fois les tests terminés.

Et puisque les tests s'exécutent toutes les 30 minutes, j'ai jusqu'à 48 processus de 100mo en mémoire et là mon serveur me fait la tronche. La seule "solution" que j'ai trouvé c'est de relancer phpUC toute les 2 heures...

J'ai certainement fait une fausse manip quelque part, je ne sais pas si tu as rencontré ce problème ?

llaumgui

Je n'ai pas ce problème. Mais de toute façon, on ne build que si changement sur le SVN et que toute les heures.

Après on a un nightly qui pousse le dev en intégration mais ça c'est le soir. A savoir aussi qu'il est facile de rajouter des trucs dans phpUC mais je regrette de devoir passer par une modification des sources... C'est ce que j'ai fait faire pour intégrer la validation des templates eZ Publish dans phpUC et j'aurais préféré en faire un plugin.

llaumgui

On me parle de plus en plus de hudson, faut vraiment que je le teste. Il tourne bien pour du php ?

Sinon il y a Bitten aussi, parfaitement intégré à Trac. Mais bon, vu qu'au taf on est sur Trac 0.12 (pour des raisons de multirepo) est qu'il est incompatible avec Bitten on ne lui a pas trop laissé sa chance.

senjy

phpUc est un usine a gaz, comparé a hudson.

Les commentaires pour ce poste sont fermés.

Réseaux sociaux