2010-08-26 6 views
6

¿Por qué necesito esto? Estoy ejecutando las pruebas en el proyecto Symfony (y usando Zend fw) y phpunit genera trébol para todos los archivos afectados. Pero no quiero ver cobertura para Symfony y Zend libs (y todas las otras de terceros). Deseo ver cobertura solo para mi código. ¿O puede ser que esto debería hacer el visor de trébol? Estoy usando el plugin de trébol para Hudson, pero no es compatible con la visualización de fuentes particulares. El plugin de trébol muestra que mi código solo cubría el 20%, eso es incorrecto porque también consideró Symfony y Zend libs.phpunit clover de algunos directorios en particular, trébol no completo. ¿Es posible?

Por cierto, ¿puede haber otras maneras de conseguir esto?

Respuesta

10

Necesita crear un archivo de configuración para phpunit, dentro de ese archivo de configuración puede excluir archivos o directorios específicos de la cobertura del código.

Ejemplo archivo es como sigue:

<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> 

Con el archivo de todo lo anterior bajo ../php (esto es relativo desde el directorio donde las pruebas están en phprun y se ejecuta desde) está incluido en la cobertura de código, excepto el ../php/somefile.php archivo y todos los archivos con la extensión .php del directorio ../php/pdf

Nombre este archivo phpunit.xml, ponerlo en el mismo directorio donde se ejecuta las pruebas de. Ellos, si ejecutas phpunit, elegirán la confía.

Si no puede utilizar este nombre de archivo determinado, puede dar el nombre de la línea de comandos

phpunit --configuration yourconf.xml 

Más detalles sobre el archivo de configuración PHPUnit está disponible en: http://phpunit.de/manual/3.7/en/appendixes.configuration.html

+0

Su mención de la ruta relativa es útil, ¡gracias! –

0

creo que la nota del filtro de la configuración archivo XML debe ser envuelto por el nodo autenticarte:

de esta manera:

<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> 

Cuestiones relacionadas