2012-12-13 11 views
7

Come escludere le directory di base dalla copertura del codice di PHPUnit?Escludere la directory di base da PHPUnit Copertura del codice

Questo è il mio phpunit.xml

<?xml version="1.0" encoding="UTF-8"?> 
<phpunit bootstrap="include.php" 
     stopOnError="false" 
     stopOnFailure="false" 
     stopOnIncomplete="false" 
     stopOnSkipped="false"> 
    <testsuite name="MyProject"> 
     <directory>classes/*</directory> 
    </testsuite> 
    <logging> 
     <log type="coverage-html" target="../reports/coverage" charset="UTF-8" yui="true" highlight="false" lowUpperBound="35" highLowerBound="70"/> 
     <log type="coverage-xml" target="../reports/coverage.xml"/> 
     <log type="test-xml" target="../reports/logfile.xml" logIncompleteSkipped="false"/> 
     <log type="testdox-html" target="../reports/testdox.html"/> 
     <log type="testdox-text" target="../reports/testdox.txt"/> 
    </logging> 
</phpunit> 

Quando è uscita include tutte le directory di base come:

c:\work\some\path\MyProject 

Come posso farlo includere solo il ...\MyProject\* nell'output Code Coverage?

+2

Hai mai risolvere questo problema? Mi piacerebbe sapere come fare anche questo, ma sfortunatamente la persona che ha scritto la risposta ha frainteso la tua domanda. – Julian

+1

@ Julian sì, l'ho fatto, ma è stato un po 'di tempo fa, quindi dovrò scavare. – Petah

+2

Si prega di fare! Grazie! – Julian

risposta

5

Le risposte in realtà non descrivono il layout di progetto, ma presumo che cosa state cercando è:

Including and Excluding Files for Code Coverage

Ciò consente di specificare una whitelist di file che PHPUnit si cura di quando la generazione del codice copertura.

Tutto ciò che non è su quella lista bianca non verrà mostrato nel rapporto.

di farlo aggiungere il seguente qualche livello superiore:

<filter> 
    <whitelist processUncoveredFilesFromWhitelist="true"> 
    <directory suffix=".php">.../MyProject/</directory> 
    </whitelist> 
</filter> 
+0

Scusate se non ero chiaro. Non voglio escludere nulla. Voglio solo rimuovere la directory di base dal report di copertura del codice. Quindi, per esempio adesso, se eseguo i miei test e apro il rapporto CC, devo cliccare almeno su 5 collegamenti per arrivare a qualsiasi cosa significhi piena. 'C: \' -> 'work' ->' projects' -> 'websites' ->' MyProject' -> 'classes'. Voglio solo avere il livello più alto 'MyProject', così posso cliccare' MyProject' -> 'classes'. – Petah

+0

Il '' in questione dovrebbe farlo per voi per quanto ne so. Potrebbe essere un problema con i percorsi su Windows o qualcosa di strano ma in generale dire phpunit "questa è la cartella radice per la copertura" è fatto in questo modo. – edorian

+0

Questa risposta ha funzionato per me. –