« Back
in PHP PHPUnit PEAR Symfony2 read.

Installation PhpUnit.

Pour installer correctement PHPUnit, il est nécessaire d'avoir PEAR.

Pour cela, il vous faut aller récupérer sur le site officiel le fichier go-pear.phar (ou il est possible que votre environnement possède déjà ce fichier dans la racine de PHP).

Prendre le go-pear.phar sur le site suivant :
http://pear.php.net/manual/en/installation.getting.php

Il faut ensuite enregistrer le fichier dans le un répertoire PEAR dans vos binaries PHP.

Puis lancer la commande suivante :

    php pear/go-pear.phar

Il suffit ensuite de suivre les instructions affichés à l'écran, il va notamment vous demander où se trouve les binaries PHP mais aussi si vous voulez modifier votre fichier php.ini
Ensuite normalement, vous devriez avoir à disposition une commande pear dans votre console.
Pour vérifier faite :

  pear

Sinon je vous conseil de vérifier votre PATH dans vos variables d'environnement.

Ensuite il faut lancer dans l'ordre les commandes suivantes :

pear channel-discover components.ez.no
pear channel-discover pear.phpunit.de
pear channel-discover pear.symfony-project.com
pear channel-discover pear.symfony.com
pear install --alldeps phpunit/PHPUnit

Normalement vous avez maintenant à disposition une commande phpunit dans votre console. Pour tester :
phpunit --version
Pour lancer votre test (ici avec Symfony) il suffit de lui donner le répertoire contenant votre fichier phpunit.xml

run for Symfony :

phpunit --tap --colors -c app/

Et voici brièvement une classe de test Symfony2 :

<?php
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Component\BrowserKit\Cookie;
use Symfony\Component\BrowserKit\CookieJar;

class SecurityControllerTest extends WebTestCase
{
    public function testLangFrLogin()
    {
        $jar = new CookieJar();
        $client = static::createClient(array(), array(), $jar);
        $client->followRedirects();
        $crawler = $client->request('GET', '/connexion/PC/fr');
        //$crawler = $client->request('GET', '/dsp/web/app_dev.php/connexion/PC/fr');

        //Test langue == FR
        $this->assertEquals("Se souvenir de moi", 
            $crawler->filter('div.rememberme span')->first()->text());
    }
}

Pour info, le crawler de Symfony2 semble générer lui même un serveur apache. Il utilise dans la fonction request le path comme définit dans votre route sans vous souciez du port de votre environnement ou d'un possible alias.

comments powered by Disqus