Archives mensuelles : octobre 2012

Initiation à Atoum

Présentation

Atoum est un framework de test unitaire, dont le plus connu est PHPunit, pour le langage PHP créé par Frédéric Hardy. Nous allons voir comment installer et utiliser Atoum à travers un mini tuto afin de prendre en main l’outil et de vous donner la documentation existante disponible sur Internet.

Installation

NB : Ne sera disponible que les grandes lignes pour l’installation et le paramétrage d’Apache et ne traiterai donc pas des différents environnement (windows ou linux)

Vous avez 2 possibilités pour installer Atoum, soit vous prenez les sources, soit vous prenez seulement le fichier mageekguy.atoum.phar. Nous verrons essentiellement l’utilisation du fichier *.phar.

Initiation

Nous allons voir comment fonctionne Atoum rapidement avec une classe, sa classe test et Atoum même.

Une classe Horloge

Voici arborescence du tuto :

monprojet/
monprojet/mageekguy.atoum.phar
monprojet/classe/Horloge.class.php
monprojet/tests/units/Horloge.php

Dans ce mini tuto, nous allons faire une classe Horloge qui aura heure, minute et seconde en attribut avec une méthode qui sera le constructeur pour commencer. Ensuite, fait un getteur simple comme getHour() par exemple.

Passons au test

A savoir, il sera nécessaire de préciser la classe, le chemin d’Atoum, le namespace mais aussi le namespace utilisé (voir dans les fichiers joints).

Lancer le test en ligne de commande

En étant à la racine du tuto, lancer la commande suivante :

php tests/units/Horloge.php

Voir le fichier capture_ecran_test1, vous devriez avoir quelque chose de similaire.

Couverture du code

Sur l’image capture_ecran_test1, on peut voir la ligne :

> Code coverage value: 40.00%

Ceci est la couverture de code de votre classe, ce que la classe de test à passer en revu pour faire ses tests. Pour avoir le taux de couverture de code, il est nécessaire d’installer xdebug et de paramétrer celui-ci.

Paramétrage de Xdebug

Le paramétrage ci dessous est aussi bien nécessaire sur linux que sur windows dans le php.ini, cependant, il sera nécessaire de les adaptrer

zend_extension=/usr/lib/php5/20090626/xdebug.so
xdebug.remote_enable=On
xdebug.remote_log=/var/log/xdebug.log
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.coverage_enable=1

fichiers testatoum

 

Symfony 2.1 avec Composer

La version 2.1 de Symfony est passé en version stable. Qu’est ce qu’il y a de nouveau ? Ce qui est essentiel, c’est surtout l’utilisation de Composer, un gestionnaire de librairie (ou de bibliothèque).

Téléchargement de Symfony 2.1 et de Composer

Pour les utilisateurs de Symfony, l’url #1 est Symfony.com, évidement. Perso, je télécharge la version « 2.1 RC without vendor ». Ce qui se résume à récupérer l’arborescence d’un projet SF 2.1 sans les différentes classes. Je préfère le faire à la main avec mon petit terminal.

Une fois que votre répertoire de projet est opérationnel, installer Composer avec la commande suivante :

curl -s http://getcomposer.org/installer | php

Maintenant que vous avez Composer, rapatrier les différentes classes que propose Symfony.

php composer.phar install

Installation d’autres Bundles

Ouvrez le fichier composer.json, ajouter votre bundle et lancer la commande pour charger ce nouveau bundle. Ne vous souciez plus des dépendances, elles seront géré par Composer.