2011-01-29 25 views
11

Estoy escribiendo pruebas unitarias usando una versión anterior de PHPUnit (3.4) y, por lo tanto, no puedo usar todas las aserciones admitidas enumeradas en el manual de 3.5 y 3.6. Aunque podría realizar pruebas de reingeniería para soporte instantáneo en mi entorno aquí, me gustaría hacer que mis pruebas dependan de la versión actual de PHPUnit, de modo que esté usando assertsInstanceOf() tan pronto como el entorno de prueba de mi o de cualquier otro proporcione PHPUnit 3.5+ .Cómo detectar la versión de PHPUnit

Pensé que habría algún tipo de constante definida automáticamente por PHPUnit, pero no pude encontrar ninguna documentación sobre ella.

¿Hay alguna forma de lograr esto sin requerir la definición de constante al llamar a la línea de comandos?

+2

'phpunit --version'? –

+0

@zerkms: Tratando de mantenerme sincronizado con mi distribución. Esperando que otros realicen pruebas en sus sistemas y, por lo tanto, probablemente no usen el último software. – soletan

+0

@Marc B: quiero implementarlo dentro del código, ya que estoy invocando todas las pruebas con "phpunit " y luego solicitando algunas pruebas para omitir o cambiar comportamiento dependiendo de la versión de phpunit utilizada ... algún tipo de codificación condicional. – soletan

Respuesta

3

Para hacer la prueba incompleta para las versiones anteriores:

if (
     !method_exists('PHPUnit_Runner_Version','id') 
     || version_compare(PHPUnit_Runner_Version::id(), '3.7', '<=') 
    ) { 
     $this->markTestIncomplete('need phpunit >= 3.7 to run this test'); 
    } 
+0

Existe desde 3.0, que tiene más de 6 años :-) Comprobar si el método existe en este caso es algo extraño :-) – zerkms

+0

lo siento, no tuve tiempo de comprobar el historial de commit de PHPUnit para escribir una línea menos del código –

+0

cómo hacer lo mismo en phpUnit 6+? –

3

Puedes añadir an annotation antes de la prueba:

/** 
* @requires PHPUnit 3.7.32 
*/ 
function testRequiringCertainPHPUnit() { 
} 
0

funciona en Mac:

phpunit --version 

@Marc B

Cuestiones relacionadas