2010-09-24 14 views
22

Cada vez que ejecuto una prueba de unidad individual en PHPUnit, también se genera un informe de cobertura de código. Tengo una computadora más vieja aquí en el trabajo, y si pudiera deshabilitar la cobertura del código cuando no lo necesite, eso presionaría menos mi CPU.¿Hay alguna manera de deshabilitar la cobertura de código en PHPUnit para una sola prueba?

¿Hay alguna forma de deshabilitar la cobertura del código según cada prueba? No pude encontrar ningún modificador de línea de comandos que lo hiciera.

+0

¿Has intentado hacerlo en la configuración XML? –

Respuesta

22

¿Qué tal hacer una copia de su phpunit.xml, la eliminación de la estrofa <logging> de ella, y luego haciendo:

phpunit --configuration new.xml 
+0

Guau, no me di cuenta que era así de simple. Supongo que puedo usar un archivo de configuración diferente cuando estoy ejecutando una única prueba frente a cuando estoy ejecutando todo el conjunto. –

+3

Terminé reduciendo mi archivo xml a solo ... ahora funciona a la velocidad del rayo. ¡Ojalá hubiera sabido esto antes! –

+0

Tengo un script de shell que ejecuta PHPunit con una configuración 'phpunit-FAST.xml' - no tiene cobertura de código, y también excluye algunas pruebas más grandes, marcadas con '@groupname' en la fuente. Ejecuta la mayoría de mis pruebas en 2 segundos. Con cobertura y todas las otras pruebas también, 2.5 minutos. –

30

ya que este es uno de los mejores resultados de Google, creo que tiene sentido señalar que desde la versión 4.8 PHPUnit ahora es compatible con la opción --no-coverage para anular su configuración xml.

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

+1

Esta debería ser la respuesta aceptada – OnIIcE

+0

No, esta no debería ser la respuesta aceptada. La pregunta era por "una forma de deshabilitar la cobertura de código en PHPUnit para una sola prueba" y no por deshabilitar la cobertura de código para una sola ejecución de todas las pruebas. –

+1

@SebastianBergmann La pregunta es confusa, ya que dice que quiere deshabilitar la cobertura del código para una sola prueba cuando no la necesita porque tiene una computadora vieja. Una línea de comando también se menciona. No era explícito, pero la idea es usar '--no-coverage' cuando ejecuto una única prueba (que asumí que el usuario estaba haciendo) –

1

Puede anotar una clase de prueba o método de prueba con @coversNothing. La (s) prueba (s) no contribuyen al informe de cobertura del código. Sin embargo, los datos de cobertura del código aún se recopilarán (ralentizando la ejecución). Planeo optimizar esto en el futuro.

Cuestiones relacionadas