J'utilise phpunit en relation avec jenkins et je souhaite 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 puis-je traduire cela dans le fichier XML puisque la <filters>
balise est uniquement pour la couverture de code?
Je souhaite exécuter tous les tests sauf testStuffThatAlwaysBreaks
<exclude>
- ferait le travail pour vousRéponses:
Le moyen le plus rapide et le plus simple d'ignorer les tests qui sont interrompus ou sur lesquels vous devez continuer à travailler plus tard consiste simplement à ajouter ce qui suit en haut de votre test unitaire individuel:
$this->markTestSkipped('must be revisited.');
la source
static::markTestSkipped('');
place de$this->
. Cela générera un avertissement dans les nouvelles versions de PHP. Signature:public static function markTestSkipped($message = '')
$this->markTestSkipped()
markTestSkipped()
est toujours une méthode statique.Si vous pouvez ignorer tout le fichier, alors
<?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>
la source
<exclude>
et 893 tests avec le<exclude>
....... 63 / 893 ( 7%)
@group
annotations et des tests fractionnés de par leur natureParfois, il est utile d'ignorer tous les tests d'un fichier particulier en fonction des conditions personnalisées définies en tant que 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 le fichier de démarrage de phpunit ou même une variable globale.
la source
Config
classe? Où dois-je le placer?