2012-04-23 13 views
13

Estoy aprendiendo las cuerdas con Unit testing Zend Framework aplicaciones. Hasta ahora, configuré PHPUnit para trabajar con Zend Framework y comencé a escribir algunos casos de prueba simples.PHPUnit Code Coverage

Mi problema es que me pregunto por qué Code Coverage no funciona a pesar de estar configurado en la etiqueta de registro en mi phpunit.xml.

No obtengo ningún error pero no se genera ningún informe de cobertura.

Sin embargo Funciona cuando corro phpunit --coverage <dir>

La sección de registro de mi PHPUnit es la siguiente:

<phpunit bootstrap="./application/bootstrap.php" colors="true"> 
     <testsuite name="CI Test Suite"> 
      <directory>./</directory> 
     </testsuite> 
     <testsuite name="Library Test Suite"> 
      <directory>./library</directory> 
     </testsuite> 

     <filter> 
      <whitelist> 
       <directory suffix=".php">../application/</directory> 
       <exclude> 
        <directory suffix=".phtml">../application</directory> 
        <file>../application/Bootstrap.php</file> 
        <file>../application/controllers/ErrorController.php</file> 
       </exclude> 
      </whitelist> 
      <logging> 
       <log type="coverage-html" target="./log/report" charset="UTF-8" yui="true" 
    highlight="true" lowUpperBound="50" highLowerBound="80" /> 
       <log type="testdox" target="./log/testdox.html" />  
      </logging> 
     </filter> 
    </phpunit> 

Cualquier persona se encuentra con este antes? ¿Cuál es entonces probable problema?

+3

No tengo mi registro anidado dentro del filtro .... que podría hacer una pequeña diferencia –

Respuesta

23

Aquí está el phpunit.xml para uno de mis proyectos, esto funciona bien. Como puede ver, la sección de registro está fuera de la sección de filtro, por lo que probablemente sea su problema, tal como lo comentó Mark Baker. Elegí este como es de un proyecto pequeño y es muy simple.

<phpunit bootstrap="./bootstrap.php" colors="false"> 
    <testsuite name="HSSTests"> 
     <directory>./</directory> 
    </testsuite> 

    <filter> 
     <whitelist> 
      <directory suffix=".php">d:/wamp/app_hss/</directory> 
      <exclude> 
       <directory suffix=".phtml">d:/wamp/app_hss/</directory> 
       <directory suffix=".php">d:/wamp/app_hss/tests/</directory> 
      </exclude> 
     </whitelist> 
    </filter> 

    <logging> 
     <log type="coverage-html" target="./log/codeCoverage" charset="UTF-8" 
      yui="true" highlight="true" 
      lowUpperBound="50" highLowerBound="80"/> 
     <log type="testdox-html" target="./log/testdox.html" /> 
    </logging> 
</phpunit> 

Toda la información que pueda necesitar en esto es en el PHPunit manual.

+0

¡Tiene toda la razón! La sección de registro no debería haber estado dentro de la sección de filtro. – stevepop