2012-04-23 4 views
13

Sto imparando le corde con Unit test Zend Framework applicazioni. Finora ho impostato PHPUnit per lavorare con Zend Framework e ho iniziato a scrivere alcuni semplici casi di test.PHPUnit Code Coverage

Il mio problema è che mi sto chiedendo perché Code Coverage non funziona nonostante sia stato impostato nel tag di registrazione nel mio phpunit.xml.

Non ricevo alcun errore ma non viene generato alcun rapporto di copertura.

tuttavia funziona quando si esegue phpunit --coverage <dir>

sezione Registrazione del mio phpunit è il seguente:

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

chiunque incontrino questo prima? Qual è quindi il probabile problema?

+3

Non ho la mia registrazione annidata all'interno del filtro .... che potrebbe fare un po 'di differenza –

risposta

23

Ecco phpunit.xml per uno dei miei progetti, funziona perfettamente. Come puoi vedere, la sezione di registrazione è al di fuori della sezione filtro, quindi probabilmente questo è il tuo problema come commentato da Mark Baker. Ho scelto questo come è da un piccolo progetto ed è molto semplice.

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

Tutte le informazioni si potrebbe mai bisogno su questo è nella PHPunit manual.

+0

Hai assolutamente ragione! La sezione di registrazione non doveva essere all'interno della sezione filtro. – stevepop