2010-09-24 2 views
22

Chaque fois que j'exécute un test unitaire en PHPUnit, un rapport de couverture de code est également généré. J'ai un ordinateur plus ancien ici au travail, et si je pouvais désactiver la couverture de code quand je n'en ai pas besoin, cela mettrait moins de pression sur mon processeur.Existe-t-il un moyen de désactiver la couverture de code dans PHPUnit pour un seul test?

Y at-il un moyen de désactiver la couverture de code sur une base par test? Je ne pouvais pas trouver de commutateur de ligne de commande qui le ferait.

+0

Avez-vous essayé de le faire dans la config XML? –

Répondre

22

Que diriez-vous de faire une copie de votre phpunit.xml, en supprimant la strophe <logging> de lui, font alors:

phpunit --configuration new.xml 
+0

Wow, je ne savais pas que c'était aussi simple. Je suppose que je peux utiliser un fichier de configuration différent quand je cours un seul test par rapport à quand je cours toute la suite. –

+3

J'ai fini par réduire mon fichier xml à ... maintenant, il fonctionne très rapidement. J'aurais aimé le savoir plus tôt! –

+0

J'ai un script shell qui exécute PHPunit avec une configuration 'phpunit-FAST.xml' - il ne fait pas de couverture de code, et exclut aussi des tests plus importants, marqués avec '@groupname' dans la source. Il exécute la plupart de mes tests en 2 secondes. Avec la couverture et tous les autres tests, 2,5 minutes. –

30

Depuis c'est l'un des résultats de Google top, je pense qu'il est logique de souligner que depuis la version 4.8 PHPUnit supporte maintenant l'option --no-coverage pour remplacer votre configuration XML.

https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-4.8.md

+1

Ceci devrait être la réponse acceptée – OnIIcE

+0

Non, ceci ne devrait pas être la réponse acceptée. La question était pour "un moyen de désactiver la couverture de code dans PHPUnit pour un seul test" et non pour désactiver la couverture de code pour une seule exécution de tous les tests. –

+1

@SebastianBergmann La question est déroutante, car il indique qu'il veut désactiver la couverture de code pour un seul test quand il n'en a pas besoin car il a un vieil ordinateur. Une ligne de commande est également mentionnée. Je n'étais pas explicite mais l'idée est d'utiliser '--no-coverage' lors de l'exécution d'un seul test (que j'ai supposé que l'utilisateur faisait) –

1

Vous pouvez annoter une classe de test ou méthode d'essai avec @coversNothing. Le ou les tests ne contribuent donc pas au rapport de couverture du code. Cependant, les données de couverture de code seront toujours collectées (ralentissement de l'exécution). Je prévois d'optimiser cela à l'avenir.

Questions connexes