2010-08-26 24 views
6

Pourquoi ai-je besoin de cela? J'exécute les tests sur le projet symfony (et en utilisant Zend fw) et phpunit génère le trèfle pour tous les fichiers affectés. Mais je ne veux pas voir de couverture pour les librairies symfony et Zend (et toutes les autres tierces parties). Je souhaite voir la couverture de mon code uniquement. Ou peut-être cela devrait faire le trèfle spectateur? J'utilise le plugin trèfle pour hudson, mais il ne supporte pas la visualisation pour des sources particulières. Le plugin clover montre que mon code ne couvrait que 20%, ce qui est incorrect car il considère aussi les librairies symfony et Zend.trèfle phpunit de certains répertoires particuliers, pas de trèfle complet. C'est possible?

Btw, peut être il y a un autre moyen d'obtenir ceci?

Répondre

10

Vous devez créer un fichier de configuration pour phpunit. Dans ce fichier de configuration, vous pouvez exclure des fichiers ou des répertoires spécifiques de la couverture de code.

Exemple de fichier ressemble à ceci:

<phpunit stopOnFailure="false"> 
    <testsuite name="Name"> 
    </testsuite> 

<filter> 
    <whitelist> 
      <directory suffix=".php">../php</directory> 
      <exclude> 
        <file>../php/somefile.php</file> 
        <directory suffix=".php">../php/pdf</directory> 
      </exclude> 
    </whitelist> 
</filter> 

<logging> 


     <log type="coverage-html" target="target-dir/coverage" charset="UTF-8" yui="true" highlight="true"/> 
     <log type="coverage-clover" target="target-dir/build/logs/clover.xml"/> 
</logging> 

</phpunit> 

Avec le tout fichier ci-dessus sous ../php (ce qui est relatif à partir du répertoire où les tests sont et phprun est exécuté à partir) est inclus dans la couverture de code, sauf le fichier ../php/somefile.php et tous les fichiers avec l'extension .php de répertoire ../php/pdf

Nom de fichier phpunit.xml, le mettre dans le même répertoire où vous exécutez les tests de. Si vous lancez phpunit, ils choisiront la conf.

Si vous ne pouvez pas utiliser ce nom de fichier particulier, vous pouvez donner le nom de la ligne de commande

phpunit --configuration yourconf.xml 

Plus de détails sur le fichier de configuration de PHPUnit est disponible à l'adresse: http://phpunit.de/manual/3.7/en/appendixes.configuration.html

+0

Votre mention du chemin relatif est utile, merci! –

0

Je pense que la note de filtre de la configuration fichier xml doit être enveloppé par le noeud loggin:

Comme ceci:

<phpunit stopOnFailure="false"> 
    <testsuite name="Name"></testsuite> 

    <logging> 
     <filter> 
       <whitelist> 
         <directory suffix=".php">../php</directory> 
         <exclude> 
           <file>../php/somefile.php</file> 
           <directory suffix=".php">../php/pdf</directory> 
         </exclude> 
       </whitelist> 
     </filter> 

     <log type="coverage-html" target="target-dir/coverage" charset="UTF-8" yui="true" highlight="true"/> 
     <log type="coverage-clover" target="target-dir/build/logs/clover.xml"/> 
    </logging>