2010-09-24 5 views
22

Ogni volta che eseguo un test di unità singola in PHPUnit, viene generato anche un report di copertura del codice. Ho un vecchio computer qui al lavoro, e se potessi disabilitare la copertura del codice quando non ne ho bisogno, ciò metterebbe meno la mia CPU.C'è un modo per disabilitare la copertura del codice in PHPUnit per un singolo test?

C'è un modo per disattivare la copertura del codice su una base per test? Non sono riuscito a trovare alcun interruttore della riga di comando che lo avrebbe fatto.

+0

Hai provato a farlo nella configurazione XML? –

risposta

22

Che ne dite di fare una copia del vostro phpunit.xml, rimuovendo il <logging> strofa da esso, quindi facendo:

phpunit --configuration new.xml 
+0

Wow, non avevo realizzato che fosse così semplice. Suppongo di poter utilizzare un file di configurazione diverso quando eseguo un singolo test rispetto a quando eseguo l'intera suite. –

+3

Ho finito per ridimensionare il mio file xml in solo ... ora funziona veloce come un fulmine. Vorrei averlo saputo prima! –

+0

Ho uno script di shell che esegue PHPunit con una configurazione 'phpunit-FAST.xml' - non esegue la copertura del codice, ed esclude anche alcuni test più grandi, contrassegnati con '@groupname' nell'origine. Esegue la maggior parte dei miei test in 2 secondi. Con copertura e tutti gli altri test, 2.5 minuti. –

30

Dal momento che questo è uno dei migliori risultati di Google, penso che ha senso sottolineare che dalla versione 4.8 PHPUnit ora supporta l'opzione --no-coverage per sovrascrivere la configurazione xml.

https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-4.8.md

+1

Questa dovrebbe essere la risposta accettata – OnIIcE

+0

No, questa non dovrebbe essere la risposta accettata. La domanda riguardava "un modo per disabilitare la copertura del codice in PHPUnit per un singolo test" e non per disabilitare la copertura del codice per una singola esecuzione di tutti i test. –

+1

@SebastianBergmann La domanda è confusa, poiché afferma che desidera disabilitare la copertura del codice per un singolo test quando non ne ha bisogno poiché ha un vecchio computer. Viene anche menzionata una riga di comando. Non ero esplicito ma l'idea è di usare '--no-coverage' quando si esegue un singolo test (che presumevo che l'utente stesse facendo) –

1

È possibile annotare una classe di test o di un metodo di prova con @coversNothing. I test quindi non contribuiscono al rapporto sulla copertura del codice. Tuttavia, i dati di copertura del codice verranno comunque raccolti (rallentando l'esecuzione). Ho intenzione di ottimizzare questo in futuro.