2012-01-16 25 views
9

Estoy usando PHPUnit (3.6.7) para probar y proporcionar informes de cobertura de código en mi aplicación, todo está configurado y funcionando como se esperaba.Uso de la cobertura de código PHPUnit con interfaces

Tengo cobertura completa para todo el código a excepción de mis interfaces, aunque tengo pruebas para las clases que implementan las interfaces. El informe solo indica que la interfaz no se ejecutó

¿Hay alguna manera de cubrir las interfaces? ¿O se trata de decirle a PHPUnit que los ignore para la cobertura del código?

Respuesta

5

Puede especificar que las pruebas para un método de clase concreto cubren desde clases/interfaces abstractas parentales.

Véase la sección Specifying Covered Methods en Code Coverage Analysis capítulo en el manual.

En el mismo capítulo, también encontrará formas de ignorar los bloques de código o los archivos completos del análisis de cobertura de código.

+1

¡Perfecto! Gracias. Para cualquier otra persona que se encuentre con esto, necesita @covers Class_Name en su clase de prueba doc block –

+0

Enlace actualizado a la última página del manual de la versión: https://phpunit.de/manual/current/en/code-coverage-analysis.html – shevron

+0

@shevron: ¡Gracias! Actualicé el enlace en mi respuesta ahora. – Mchl

1

Las interfaces no contienen código ejecutable, por lo que no hay nada que probar.

+0

No estoy tratando de probarlos directamente, aunque se utilizan con assertInstanceOf(), solo los quiero en la cobertura del código, ya que están siendo "usados" –

5

Así como una respuesta adicional:

La próxima versión de PHPUnit (3.7.) ignorará todas las interfaces para la cobertura de manera predeterminada.

Así que no será necesario utilizar ningún tipo de includes o //@codeCoverageIgnore formas de evitar el problema.

Cuestiones relacionadas