Cucumber-js: ¿Hora de un lanzamiento? El formateador `message` no funciona en la última versión, pero funciona en` master`

Creado en 22 jun. 2020  ·  14Comentarios  ·  Fuente: cucumber/cucumber-js

Hola,

En la última versión, el formateador message no funciona, desafortunadamente. Lo hace en master , lo cual es una gran noticia. ¿Sería un buen momento para un lanzamiento? :)

Gracias 💜

fixed-in-7

Comentario más útil

@aslakhellesoy Estoy trabajando en el n. ° 1318 en este momento, que agrega validación contra CCK y actualizaciones de los últimos pepinillos, mensajes, etc. Solo estoy trabajando en los espacios restantes, no queda mucho tiempo, con el objetivo de terminar en los próximos días. Creo que estaremos en buena forma para lanzar 7.0.0 después de eso.

En realidad, quería verificar su intención con el paquete javascript CCK ; noté que se publicó en npm en @cucumber/compatibility-kit un tiempo, pero no se ha actualizado en un tiempo. Por ahora solo estoy copiando archivos del monorepo para trabajar contra ellos, pero tener las características CCK y los accesorios de mensajes como una dependencia parecería una buena manera de hacerlo.

Todos 14 comentarios

Hola @sroze : ¿ha probado los mensajes generados con algún consumidor? ¿De ser asi, cuales?

Me gustaría asegurarme de que la salida generada funcione con lo siguiente:

@ vincent-psarga: ¿podemos actualizar el cck para validar esto como parte de la compilación de monorepo?

Lo siguiente debe actualizarse antes de cortar una versión:

  • "cucumber-expressions": "^8.3.0" -> "@cucumber/cucumber-expressions": "^10.2.0"
  • "cucumber-messages": "^8.0.0" -> "@cucumber/messages": "^12.1.1"
  • "cucumber-tag-expressions": "^2.0.3" -> "@cucumber/tag-expressions": "^3.0.0"
  • "gherkin": "^9.0.0" -> "@cucumber/gherkin": "^13.0.0"

Si se hiciera un lanzamiento sin estas actualizaciones, los mensajes producidos por el formateador message serían incompatibles con los últimos lanzamientos de cucumber-html , json-formatter y cualquier otra cosa que dependa del última versión de @cucumber/messages . Y eso no sería útil para nadie, creo.

@aslakhellesoy En realidad, los estoy usando con mi propio analizador para integrarlos en una documentación generada automáticamente (en un complemento para mkdocs), así que estoy usando --format message:output.ndjson y estoy leyendo ese archivo output.ndjson . Hasta ahora todo bien, mucho mejor que la salida JSON anterior, debo decir 👌

@ vincent-psarga: ¿podemos actualizar el cck para validar esto como parte de la compilación de monorepo?

Solo para estar seguro de que entiendo esto correctamente: ejecute la última versión xxx-formatter contra la versión de messages para asegurarse de que no nos salteamos una versión de los formateadores.
Eso definitivamente tiene sentido. Aunque no sé si eso debería ser parte del CCK o un segundo trabajo de CI para cada formateador.

@sroze muy bien! Tenga en cuenta que ha habido algunos cambios incompatibles hacia atrás en la biblioteca @cucumber/messages de 8.0.0 a 12.1.1 . También se le ha cambiado el nombre. Cualquier biblioteca que dependa de ella también deberá actualizarse.

Las otras implementaciones de Cucumber (JVM / Java y Ruby) usan las últimas versiones de la biblioteca de mensajes, por lo que su herramienta no podría consumirlas.

@sroze ¿tienes un enlace a tu proyecto?

@ vincent-psarga Estaba sugiriendo que podríamos verificar que cucumber.js cumple con nuestro cck. Tendríamos que implementar definiciones de pasos, ejecutar cucumber.js con el formateador de mensajes y luego verificar si tanto json-formatter como html-formatter pueden consumir esos mensajes.

¿No estamos haciendo esto ya para pepino-rubí y pepino-jvm?

Ah, vale, no vi que estuviéramos en el repositorio cucumber-js (ese es el problema al verificar las notificaciones en el teléfono ...).

Supongo que sería factible, pero no estoy seguro de que debamos hacerlo en el propio monorepo, más en este repositorio. Para ruby, tenemos dos validaciones ejecutadas contra CCK:

  • uno hecho en cucumber-ruby , que valida el maestro pepino-rubí con la última versión de mensajes (pero usa el maestro de json-formatter y html-formatter )
  • uno hecho en monorepo, que usa el maestro actual de mensajes y la última versión de cucumber-ruby . Tenía que estar deshabilitado ya que había discrepancias entre la versión de mensajes admitidos de pepino-ruby (podría volver a habilitarse, pero tendría que deshabilitarse nuevamente después de la próxima publicación de mensajes)

Y por lo que recuerdo, los pasos de JS ya están implementados para producir el NDJson dorado con fake-cucumber , por lo que esta parte está casi terminada (es posible que solo las importaciones deban actualizarse)

@aslakhellesoy Estoy trabajando en el n. ° 1318 en este momento, que agrega validación contra CCK y actualizaciones de los últimos pepinillos, mensajes, etc. Solo estoy trabajando en los espacios restantes, no queda mucho tiempo, con el objetivo de terminar en los próximos días. Creo que estaremos en buena forma para lanzar 7.0.0 después de eso.

En realidad, quería verificar su intención con el paquete javascript CCK ; noté que se publicó en npm en @cucumber/compatibility-kit un tiempo, pero no se ha actualizado en un tiempo. Por ahora solo estoy copiando archivos del monorepo para trabajar contra ellos, pero tener las características CCK y los accesorios de mensajes como una dependencia parecería una buena manera de hacerlo.

Gracias @davidjgoss , espero poder usar la nueva versión. Mientras se hace esto, esto es lo que tengo que hacer para usar la versión master de cucumber-js . El principal desafío es que cada vez que ejecuto npm i nuevamente, npm queja de que node_modules/cucumber es un repositorio de Git. ¿Conoces una forma mejor? 🤔

diff --git a/package.json b/package.json
index e78cd20..8702cb7 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,8 @@
     "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -f src/orm-migratio
ns-config.ts",
     "typeorm:migrate": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -f src/orm-
migrations-config.ts migration:run",
     "typeorm:revert": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -f src/orm-m
igrations-config.ts migration:revert",
-    "pod:migrate": "node ./node_modules/typeorm/cli.js -f dist/orm-migrations-config.js migration:run"
+    "pod:migrate": "node ./node_modules/typeorm/cli.js -f dist/orm-migrations-config.js migration:run",
+    "postinstall": "cd node_modules && mv cucumber cucumber-old && git clone https://github.com/cucumber/cucumber-js && mv cucumber-js cucumber && cd cucumber && npm i && npm run build-local && cd ../.."
   },
   "dependencies": {
@@ -86,7 +87,7 @@
     "@typescript-eslint/eslint-plugin": "^3.4.0",
     "@typescript-eslint/parser": "^3.4.0",
     "common-tags": "^1.8.0",
-    "cucumber": "^6.0.5",
+    "cucumber": "cucumber/cucumber-js#master",
     "cucumber-pretty": "^6.0.0",
     "cucumber-tsflow": "^3.2.0",
     "eslint": "^7.3.1",

¿Puedo ser molesto y perseguir lo siguiente para cortar un lanzamiento?

  1. @aslakhellesoy las dependencias se han actualizado de hecho.
  2. ✅ El trabajo (masivo) de testResult -> testStepResult )

De hecho, hicimos un lanzamiento de @sroze. Pruebe @cucumber/cucumber : esta es una versión preliminar. Consulte la guía de migración para

Oh genial, lo intentaré, ¡gracias! No lo sabía porque no se presionó ninguna etiqueta 🙃

Gracias por el aviso @sroze ; de

¿Alguna idea sobre un paquete como este para ayudar a más personas a descubrir la nueva versión?

7.0.0 ya está disponible, consulte el registro de

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