2010-07-08 9 views

risposta

16

Se si sta tentando di raggiungere la copertura del 100% del codice ma si dispone di una o più linee che non è possibile testare, è possibile circondarle con annotazioni speciali. Saranno ignorati nel report sulla copertura del codice.

if (($result = file_get_contenst($url)) === false) { 
    // @codeCoverageIgnoreStart 
    $this->handleError($url); 
    // @codeCoverageIgnoreEnd 
} 

Edit: Ho scoperto che Xdebug spesso considera la parentesi graffa di chiusura di essere eseguibile. :(Se ciò accade, spostare il tag di chiusura di sotto di essa

+0

Avevo una vecchia versione di PHPUnit in modo che il codice non funzionasse. L'ho capito ma grazie. Anche una soluzione migliore è usare phpunit.xml => I post answer .. – Alfred

+0

Confermato con PHPStorm: è necessario spostare il tag di chiusura dopo la parentesi di chiusura. – tivnet

2

In primo luogo assicuratevi di avere l'ultima e più grande PHPUnit oppure il codice ignora potrebbe essere mancante successivo creare un file phpunit.xml che sembra qualcosa di simile:..

<phpunit colors="true"> 
    <filter> 
     <blacklist> 
      <file>file1.php</file> 
      <file>file2.php</file> 
     </blacklist> 
    </filter> 
</phpunit> 
+4

La tua domanda ha chiesto di escludere le linee e i blocchi che non funzionerà in precedenza: ignora interi file. Inoltre, se si utilizza una lista bianca (la mia azienda lo fa), la lista nera viene ignorata. –

+0

Oops, grazie David. Questa domanda è stata posta tanto tempo fa e nel titolo si dice file. Ma grazie per l'informazione. – Alfred

20

di ignorare i blocchi di codice di metodo:

/** 
* @codeCoverageIgnore 
*/ 
function functionToBeIgnored() { 
    // function implementation 
} 

di ignorare i blocchi di codice di classe:

/** 
* @codeCoverageIgnore 
*/ 
class Foo { 
    // class implementation 
} 

E come ha detto @ David-Harkness, di ignorare le linee individuali:

// @codeCoverageIgnoreStart 
print 'this line ignored for code coverage'; 
// @codeCoverageIgnoreEnd 

Maggiori informazioni possono venire trovate nel PHPUnit Documentation sotto la blocchi di codice Ignorando rubrica.