2011-12-06 17 views
9

¿Cuál es la mejor manera para que verifique en PHPUnit si la ejecución de mi prueba tuvo éxito o falló? Intento tomar una captura de pantalla para mi ventana de Selenium, pero solo cuando mi prueba falló. Intenté hacer una captura de pantalla en "No apta para el éxito", pero si siempre estoy cerrando la ventana en "TearDown"() (lo cual debería estar haciendo), entonces no hay sesión para tomar la captura de pantalla en mi función "OnNotSuccessfulTest".¿Hay alguna manera de saber si hay fallas en mi caso de prueba PHPUnit de tearDown()?

La solución que estoy pensando implica comprobar si la prueba tuvo éxito o no en el tearDown, determinar si debe o no tomar una captura de pantalla.

Estoy usando PHPUnit 3.6 y php-webdriver de Facebook, así que hasta donde yo sé, no tengo la variable captureScreenshotOnFailure.

¿Pensamientos?

Respuesta

11

se puede comprobar el valor de retorno de getStatus() y tomar una captura de pantalla debajo de las condiciones deseadas.

protected function tearDown() { 
    $status = $this->getStatus(); 
    if ($status == PHPUnit_Runner_BaseTestRunner::STATUS_ERROR 
      || $status == PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE) { 
     // take a screenshot... 
    } 
} 

Ver runBare() para que el estado se establece sobre la base de la excepción lanzada desde el método de ensayo. Es posible que desee tomar una captura de pantalla para las pruebas omitidas también.

Cuestiones relacionadas