Ir al contenido

Vincular casos de prueba

Un resultado llega a un caso de Probara de una de dos maneras: su clave de automatización coincide con la clave de un caso sincronizado, o su escenario lleva una etiqueta @probara:<ID> que nombra el caso. Ambas son las reglas que usa probara sync gherkin, así que un escenario sincronizado una vez y reportado muchas veces siempre llega al mismo caso.

La clave de un escenario es <ruta> > <Feature> > <Scenario>, la misma clave que construye probara sync gherkin:

  • <ruta> es el archivo .feature relativo a rootDir, el directorio desde donde corre cucumber-js salvo que lo cambies, con separadores /, como features/checkout/pay.feature.
  • La clave es la clave v1, la clave de automatización de todos los reporters de Probara.
  • Un Rule: no forma parte de la clave: un escenario bajo una Rule se identifica bajo su Feature.
  • Un esquema de escenario tiene una sola clave, con sus marcadores tal como están escritos: Pay with <method>. Cada fila de sus Examples es un resultado aparte, registrado en el caso de ejecución con los valores de la fila (method: visa). No forman parte de la clave.
  • La clave usa los nombres tal como están escritos en el archivo .feature. Renombrar un archivo, su Feature o un escenario cambia su clave. Sincroniza el cambio, y el caso se mueve con él cuando la sincronización lo encuentra.

Ejecuta el formateador desde el directorio al que son relativas las rutas de los archivos, o define rootDir en la raíz del repositorio. La sincronización y el formateador deben usar la misma raíz, o las claves no coinciden.

Un escenario etiquetado con @probara:<ID> reporta al caso con ese identificador visible, sea cual sea su clave:

@probara:SHOP-12
Scenario: Pay with the saved card
  • Solo cuentan las etiquetas del propio escenario. Una etiqueta de su Feature o de su Rule no se aplica a sus escenarios.
  • Varias etiquetas vinculan el resultado a varios casos: se envía un resultado a cada caso.
  • Una etiqueta cuyo ID no es un identificador visible, como @probara:shop-3, se ignora, con una advertencia en stderr.
  • El caso debe pertenecer al proyecto de la ejecución, o a un proyecto de la lista projects. No se reporta a un caso de otro proyecto: el reporter lo descarta, con un recuento en el resumen.
  • Las etiquetas de otras herramientas, como @TEST_ABC-12, @QaseID=12 o @C123, no vinculan nada.

Un resultado cuya clave no coincide con ningún caso crea un caso, como hace cualquier reporte. Eso es createMissingCases, activado por defecto. El caso es entonces el que probara sync gherkin encontraría también por su clave, una vez sincronizado el escenario. Sincroniza antes de las pruebas, para que los resultados lleguen a los casos sincronizados.

Tras una ejecución, el caso de cada escenario muestra el resultado de la ejecución. Si un resultado llega a un caso nuevo, es que la sincronización no se ha ejecutado desde que renombraste el escenario, o que el formateador y la sincronización usan raíces distintas. Solución de problemas enumera las comprobaciones en orden.