9
votes

Utilisation de la couverture de code PHPUnit avec des interfaces

J'utilise PHPUnit (3.6.7) pour tester et fournir des rapports de couverture de code sur ma demande, tout est configuré et fonctionne comme prévu.

J'ai une couverture complète pour tout le code, à l'exception de mes interfaces, même si j'ai des tests qui pour les classes qui implémentent les interfaces. Le rapport indique simplement que l'interface n'a pas été exécutée

Y a-t-il un moyen de couvrir les interfaces? Ou est-ce un cas de dire à PHPUnit de les ignorer pour la couverture de code?


0 commentaires

3 Réponses :


1
votes

interfaces ne contiennent aucun code exécutable, il n'y a donc rien de là à tester.


1 commentaires

Je n'essaie pas de les tester directement, bien qu'ils soient utilisés avec Assertinstanceof (), je les veux juste dans la couverture du code, car ils sont "utilisés"



5
votes

Vous pouvez spécifier que des tests pour une classe de classe de béton procédés de classes / interfaces abstraites parent.

voir Spécification de méthodes couvertes section dans Code Analyse de la couverture chapitre du manuel.

Dans le même chapitre, vous trouverez également des moyens d'ignorer les blocs de code ou de fichiers entiers à partir de l'analyse de la couverture du code.


2 commentaires

Parfait! Merci. Pour quelqu'un d'autre qui rencontre cela, vous avez besoin de @covers Class_name <étendu> dans votre classe de test


Mise à jour du lien vers la dernière version de la version Page: PHPUNIT.de/manual/Currente/ FR / CODE-COUVERTURE-ANALYSE.HTML



5
votes

Une réponse supplémentaire:

La prochaine version de phpunit ( 3.7. ) ignorera toutes les interfaces de couverture par défaut.

Il ne sera donc pas nécessaire d'utiliser une sorte d'inclut ou // @ codecoverageagignore façons de contourner ensuite.


0 commentaires