web-dev-qa-db-fra.com

Comment ignorer les tests dans PHPunit?

J'utilise phpunit en connexion avec jenkins, et je veux ignorer certains tests en définissant la configuration dans le fichier XML phpunit.xml

Je sais que je peux utiliser sur la ligne de commande:

phpunit --filter testStuffThatBrokeAndIOnlyWantToRunThatOneSingleTest

comment traduire cela dans le fichier XML depuis le <filters> la balise est uniquement destinée à la couverture du code?

Je voudrais exécuter tous les tests sauf testStuffThatAlwaysBreaks

68
Filype

Le moyen le plus rapide et le plus simple d'ignorer les tests qui sont cassés ou que vous devez continuer à travailler plus tard consiste simplement à ajouter ce qui suit en haut de votre test unitaire individuel:

$this->markTestSkipped('must be revisited.');
130
jsteinmann

Si vous pouvez gérer l'ignorance de l'ensemble du fichier,

<?xml version="1.0" encoding="UTF-8"?>

<phpunit>

    <testsuites>
        <testsuite name="foo">
            <directory>./tests/</directory>
            <exclude>./tests/path/to/excluded/test.php</exclude>
                ^-------------
        </testsuite>
    </testsuites>

</phpunit>
28
zerkms

Parfois, il est utile d'ignorer tous les tests d'un fichier particulier en fonction de conditions personnalisées définies comme du code php. Vous pouvez facilement le faire en utilisant la fonction setUp dans laquelle makeTestSkipped fonctionne également.

protected function setUp()
{
    if (your_custom_condition) {
        $this->markTestSkipped('all tests in this file are invactive for this server configuration!');
    }
}

your_custom_condition peut être passé via une méthode/propriété de classe statique, une constante définie dans phpunit bootstrap file ou même une variable globale.

15
Konrad Gałęzowski