HAKUROU L'amour est dans le code

Installer PHPUnit sur eclipse 4.x sur windows

Installer PHPUnit sur eclipse 4.x sur windows

Il peut ĂȘtre pratique de pouvoir lancer des tests unitaires directement depuis son IDE, on va donc l'installer sur Windows dans l'environnement Eclipse Luna.

Les prérequis sont:

  • avoir Windows
  • avoir Eclipse 4.x PDT pour PHP (dans mon cas c'est Luna)

 

Si vous n'avez pas PHP d'installé sur votre poste, vous pouvez passer par le site officiel http://windows.php.net/download/ et télécharger la version correspondant à votre architecture.

Ensuite il faut activer openssl pour installer les outils suivants, copiez collez le fichier php.ini-production et renommez le en php.ini.
Editez le fichier et décommentez la ligne ;extension=php_openssl.dll.
Si vous n'avez pas installé PHP dans c:\php\, il se peut alors qu'il faille renommer le chemin du fichier php_openssl.dll en spécifiant le chemin de votre installation php et de pointer le dossier \ext\ qui contient la dll.

Dès lors vous avez deux possibilités, soit installer un plugin Eclipse (PTI) pour se charger des tests unitaires, soit vous installez PHPUnit directement dans votre installation de PHP et vous configurez Eclipse pour l'appeler.

 

PHPUnit via PTI

Une fois ceci fait, passons du côté d'Eclipse, ouvrez Eclipse Marketplace et cherchez pti:

 Installation PTI eclipse

 

Là où moi j'ai les boutons "update" et "uninstall" vous vous devriez avoir "install", cliquez dessus.

 

Il ne reste plus qu'à configurer le plugin en lui disant où aller chercher votre exécutable de PHP, pour ce faire, allez dans window > préférences, allez ensuite dans la section PHP > PHP Executables, et entrez votre chemin:

Configuration PHP eclipse

 

Allez ensuite dans PHP Tools dans le menu de gauche et PHPUnit, selectionnez votre exécutable PHP:

Configuration executable PHP pour PHPUnit

 

Vous pouvez afficher la fenêtre de résultat via window > Show view > Other et PHP Tools > PHPUnit.

La création d'une classe de test peut se faire en cliquant droit sur la classe à tester et new > Other et selectionnez PHP > PHPUnit > PHPUnit Test Case.

 

PHPUnit via l'installation et configuration d'Eclipse

Côté console, pour le côté pratique on va installer Composer qui pourra être réutilisé selon vos envies. Pour ce faire, ouvrez une console CMD, mettez vous dans votre install de PHP et tapez:

php -r "readfile('https://getcomposer.org/installer');" | php

 

Si vous avez bien activé openssl, ça devrait s'installer tranquillement. Si une erreur apparait disant que PHP cherche à communiquer vers du https, c'est que soit vous n'avez pas spécifié correctement votre dll, soit il faudra redémarrer votre poste.

 

Une fois composer d'installé, toujours depuis votre console tapez:

php composer.phar require "phpunit/phpunit"

 

Il faudra spécifier la version que vous souhaitez, dans mon cas j'ai précisé la dernière version, la 4.1.

Une fois l'installation Ok, allez dans Eclipse, menu Run > External Tools > External Tools Configurations.
Cliquez sur New Launch Configuration, nommez le PHPUnit, ensuite dans le champs location, prenez le chemin de votre php.exe et dans arguments mettez

"CheminVersVotreAmorceDePHPUnitNouvellementCréée" "${selected_resource_loc}"

 

Pour moi le chemin vers l'amorce est C:\Program Files\programmation\php\vendor\phpunit\phpunit.

Pour tester, il suffit de sélectionner une classe de test et de cliquer sur Run > External Tools > PHPUnit.
Dans la console d'Eclipse vous aurez le résultat des tests.

Vous voilà paré !

 

Conclusion

Les deux méthodes pour installer PHPUnit ont des avantages mais aussi des inconvénients, malheureusement le plugin PTI n'est pas fréquemment mis à jour, donc la version de PHPUnit interne n'est pas forcément au goût du jour, mais le plugin fournis des interfaces de configuration et de test pour faciliter la mise en oeuvre.
L'autre méthode est plus rustique mais permet de bénéficier de la toute dernière version de PHPUnit et on peut facilement scripter le tout pour lancer les tests de tout le projet.


Le choix vous appartient !