Dos Béhat 3.0 + trucos Jenkins

Jenkins

Estos son un par de consejos muy útiles si estás utiliza Behat 3.0 y Jenkins

La adición de una captura de pantalla de xml junit en caso de fallo

Es bastante común y fácil de guardar una captura de pantalla en un fallo de la prueba, y al mismo tiempo se puede imprimir el nombre del archivo guardado en la consola, que es mucho más útil para tenerlo escrito en el archivo XML. La dificultad con esto es que, aunque la excepción se escribe en formateador junit de Behat, no es fácil de modificar el mensaje de excepción después de haber sido lanzada. Tomando la inspiración de un post en el blog el loft de digital (http://blog.loftdigital.com/take-screenshot-with-behat-after-failed-step) hemos adoptado su enfoque, pero modificado para su uso con Behat 3. Añadir esta función de su contexto función, implementar su propio método takeScreenshot que devuelve el nombre de archivo de la pantalla. Este método se ejecutará después de cada paso, y si el paso no se necesita una captura de pantalla, a continuación, utilizar las clases de reflexión de PHP para acceder a la propiedad mensaje privado de la excepción de añadir el nombre de la captura de pantalla guardada en el mensaje de error, la cual se escribe a la xml junit.

[Php]
  / **
   * Tomar captura de pantalla en su defecto paso, añadiendo el nombre de archivo de excepción.
   *
   * @AfterStep
   * /
  takeScreenShotAfterFailedStep función pública ($ AfterStepScope alcance)
  {
    if (! $ alcance-> getTestResult () -> isPassed ()) {
      $ Screenshot_filename = $ this-> takeScreenshot ();

      $ Resultado = $ alcance-> getTestResult ();
      if ($ result-> hasException ()) {
        $ = $ Excepción resultante> getException ();
        $ ReflectionObject = new ReflectionObject ($ excepción);
        $ = $ ReflectionObjectProp reflectionObject-> getProperty ( "mensaje");
        $ ReflectionObjectProp-> setAccessible (true);
        $ ReflectionObjectProp-> setValue (. $ Excepción, $ excepcionalmente> getMessage () "- Captura de pantalla guarda en $ {nombre del archivo}");
      }
    }

  }

[/ Php] 

La agrupación de los resultados de pruebas

formateador junit de Behat genera XML que considera cada archivo de entidad como su propio banco de pruebas. Si estás usando el editor Pruebas Multi módulo de Jenkins (https://wiki.jenkins-ci.org/display/JENKINS/Multi+Module+Tests+Publisher) se termina con cada módulo correspondiente para presentar archivos, en lugar de pruebas de funcionamiento. Procesando su junit XML a través de este XSLT que rectifica. El XML puede ser transformada usando xsltproc como esto:

xsltproc -o out.xml --stringparam suite_name mi-test-suite de nombre reform_junit.xslt in.xml 
[Xml]



 

[/ Xml]