2 votes

Comment intégrer PHPUnit à un framework personnalisé

Je voudrais intégrer PHPUnit à mon framework. Cela signifie que je dois effectuer certaines initialisations au début, comme la configuration des autoloads, avant de lancer les tests.

Je voudrais utiliser le runner de test en ligne de commande, et si je comprends correctement, je dois créer une classe qui contient une fonction statique suite(), qui retourne une instance de PHPUnit_Framework_TestSuite, et ajouter des tests à cette suite, comme indiqué sur http://www.phpunit.de/manual/current/en/textui.html.

Jusqu'à présent, j'ai conçu ceci :

class MyTestFW {
    public static function suite() {
        // Effectuer les initialisations du framework ici

        $suite = new PHPUnit_Framework_TestSuite();
        $suite->addTest(new SimpleTest());

        // Ajouter d'autres tests

        return $suite;
    }
}

SimpleTest est une classe de test très basique, qui étend PHPUnit_Framework_TestCase. Lorsque je lance "phpunit MyTestFW", j'obtiens toujours :

PHPUnit 3.3.16 par Sebastian Bergmann.

E

Time: 0 seconds

Il y a eu 1 erreur :

1) (SimpleTest)
RuntimeException: PHPUnit_Framework_TestCase::$name ne doit pas être NULL.

Quelqu'un pourrait-il m'aider un peu s'il vous plaît ?

2voto

Karsten Points 8168

PHPUnit_Framework_TestCase::$name est défini dans le constructeur de la TestCase, donc vous pourriez essayer ceci :

$suite->addTest(new SimpleTest('simpletest'));

edit1:

Je ne connais pas votre code, donc je ne sais pas si cela aide.
Ce que je vois généralement est ceci (en remplacement du ci-dessus, pas en addition) :

$suite->addTestSuite('SimpleTest');

edit2:

documentation de phpunit : Chapitre 7 - Organisation des tests

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X