Cucumber-js: El informe JSON de pepino no se genera cuando el esquema de un escenario tiene una etiqueta

Creado en 22 mar. 2021  ·  12Comentarios  ·  Fuente: cucumber/cucumber-js

Versión de pepino: 7.0.0
Versión de nodo: 14.15.0
Sistema operativo: MacOS Big Sur v11.2.1

Dado este siguiente caso de prueba:

<strong i="9">@parent_tag</strong>
Scenario Outline: Sample test case
Given this is a test case
When I have the following data table
| <scenario_example> |
Then a JSON report will be generated

<strong i="10">@child_tag_1</strong>
Examples:
| scenario_example |
| Test Child Tag 1 |

<strong i="11">@child_tag_2</strong>
Examples:
| scenario_example |
| Test Child Tag 2 |

Cuando ejecuto el caso de prueba anterior con la etiqueta: "--tags @ child_tag_2" y "-f json: reports / cucumber-report.json ", el caso de prueba se ejecuta correctamente, pero al generar un informe, se produce el siguiente error:

TypeError: Cannot read property 'location' of undefined
    at /Users/project-folder/node_modules/@cucumber/cucumber/lib/formatter/json_formatter.js:185:34
    at arrayMap (/Users/project-folder/node_modules/lodash/lodash.js:653:23)
    at Function.map (/Users/project-folder/node_modules/lodash/lodash.js:9622:14)
    at JsonFormatter.getScenarioTags (/Users/project-folder/node_modules/@cucumber/cucumber/lib/formatter/json_formatter.js:180:33)
    at JsonFormatter.getScenarioData (/Users/project-folder/node_modules/@cucumber/cucumber/lib/formatter/json_formatter.js:125:24)
    at /Users/project-folder/node_modules/@cucumber/cucumber/lib/formatter/json_formatter.js:84:29
    at Array.map (<anonymous>)
    at /Users/project-folder/node_modules/@cucumber/cucumber/lib/formatter/json_formatter.js:69:36
    at /Users/project-folder/node_modules/lodash/lodash.js:3585:27
    at /Users/project-folder/node_modules/lodash/lodash.js:4967:15
    at baseForOwn (/Users/project-folder/node_modules/lodash/lodash.js:3032:24)
    at /Users/project-folder/node_modules/lodash/lodash.js:4936:18
    at baseMap (/Users/project-folder/node_modules/lodash/lodash.js:3584:7)
    at Function.map (/Users/project-folder/node_modules/lodash/lodash.js:9622:14)
    at JsonFormatter.onTestRunFinished (/Users/project-folder/node_modules/@cucumber/cucumber/lib/formatter/json_formatter.js:63:43)
    at EventEmitter.<anonymous> (/Users/project-folder/node_modules/@cucumber/cucumber/lib/formatter/json_formatter.js:23:22)

Por lo tanto, no puedo generar ningún informe JSON.

Intenté eliminar las etiquetas de ejemplo del esquema del escenario y procedí a generar el informe JSON.

bug accepted

Comentario más útil

Se ha fusionado una solución en el nuevo formateador json independiente
Pero también intentaré arreglar el formateador incorporado heredado

Todos 12 comentarios

Hola :)

Cuando dice "Intenté eliminar las etiquetas de ejemplo del esquema del escenario y procedí a generar el informe JSON", ¿eliminó solo las etiquetas pero conservó dos tablas de ejemplos? ¿O fusionaste ambos ejemplos en uno?

Hola @ aurelien-reeves,

Eliminé tanto las etiquetas como la tabla de dos ejemplos, y solo usé 1 tabla de ejemplos. :) Algo como esto:

<strong i="7">@parent_tag</strong> <strong i="8">@child_tag_2</strong>
Scenario Outline: Sample test case
Given this is a test case
When I have the following data table
| <scenario_example> |
Then a JSON report will be generated

Examples:
| scenario_example |
| Test Child Tag 2 |

¡Muchas gracias!

Gracias por la info @xenbartolokath

Tuve el mismo problema pero me di cuenta de que estaba filtrando cuando ejecuto el comando cli IE

npm run transportador - --cucumberOpts.tags = 'not ( @wip o @bug o @backlog) y @blocker '

Tenía una etiqueta diferente en la tabla de ejemplo.

@otra_etiqueta
Ejemplos:
| escenario_ejemplo |
| Prueba de etiqueta secundaria 2 |

Cambié el comando a este y trabajo para mí ->
npm run transportador - --cucumberOpts.tags = 'not ( @wip o @bug o @backlog) y ( @blocker o @another_tag )'

Gracias por tus comentarios @ yopasa94 👍

He investigado el problema más a fondo.

De hecho, el formateador json no admite etiquetas en ejemplos. En realidad debería.
El nuevo formateador json no ayuda aquí. Tampoco reconoce etiquetas de ejemplos.

Como el formateador json incorporado está obsoleto, me centraré en arreglar el nuevo independiente.

@xenbartolokath @ yopasa94 ¿tiene una necesidad específica de usar el formateador obsoleto heredado? ¿O cualquier otra cosa que le impida utilizar el nuevo formateador json independiente ?
¿Qué versión de pepino estás usando?

Hola @ aurelien-reeves,

Para este problema, estaba usando @ cucumber / cucumber v7.0.0, pero todavía uso v6.0.5 en otros repositorios que tengo.

No tengo una necesidad específica en el formateador obsoleto heredado. Para el formateador json independiente, vi que necesitaba descargar y ejecutar algunos comandos para instalarlo, y no sé si la configuración actual de mi canalización se adaptaría a los cambios. Prefiero instalarlo a través de npm si está disponible.

Mientras podamos poner etiquetas en las tablas de ejemplos y generar informes sin problemas, entonces estoy bien con eso. 😃

Para su información, el formateador json independiente es un binario independiente escrito en go. No requiere ninguna instalación además de asegurarse de que sea ejecutable.

Para su información, el formateador json independiente es un binario independiente escrito en go. No requiere ninguna instalación además de asegurarse de que sea ejecutable.

Entiendo. Gracias por la aclaración. 😊

Se ha fusionado una solución en el nuevo formateador json independiente
Pero también intentaré arreglar el formateador incorporado heredado

@xenbartolokath @ yopasa94 El formateador json independiente acaba de ser lanzado con el apoyo de ejemplos etiquetados.
Puede descargarlo allí: https://github.com/cucumber/cucumber/releases/tag/cucumber-json-formatter%2Fv17.0.2

@ aurelien-reeves Probaré esto y te dejaré saber si hay alguna retroalimentación de mi parte. ¡Gracias! Aprecio su tiempo y esfuerzo 😊

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

edwinwright picture edwinwright  ·  3Comentarios

hdorgeval picture hdorgeval  ·  3Comentarios

lamartire picture lamartire  ·  6Comentarios

jan-molak picture jan-molak  ·  4Comentarios

nicojs picture nicojs  ·  3Comentarios