Cucumber-js: Abra `const { Cli } = require('@cucumber/cucumber')` para uso programático

Creado en 28 jun. 2021  ·  3Comentarios  ·  Fuente: cucumber/cucumber-js

¿Tu solicitud de función está relacionada con un problema?
Estoy en el proceso de agregar soporte para cucumber-js en StrykerJS, el marco de pruebas de mutación para JavaScript y amigos. Consulte https://github.com/stryker-mutator/stryker-js/pull/2970

Me gustaría usar pepino programáticamente. De hecho, ya lo estoy haciendo en el MR. Sin embargo, me doy cuenta de que estoy usando una API no documentada, lo que no me gusta hacer, ya que la implementación podría fallar en una versión de lanzamiento de parche. Me esfuerzo por usar solo API públicas.

Describa la solución que le gustaría

¿Aceptaría una RP que documente el uso de la clase Cli para uso público?

const { Cli } = require('@cucumber/cucumber')

Lo agregaría a su directorio de documentos . Ya sea en un archivo nuevo ( programmatic-usage.md ) o agréguelo al archivo cli.md .

Describa las alternativas que ha considerado
-

Contexto adicional
Para que las pruebas de mutación sean factibles, necesitamos una API programática. Simplemente llamar a childProcess.exec para ejecutar cucumber-js funcionaría, pero es terrible para el rendimiento ya que Stryker ejecutará cucumber-js muchas veces durante una prueba de mutación.

documentation

Comentario más útil

Hola @nicojs , ¡tu tiempo es impecable! Estoy escribiendo una propuesta para una nueva API programática esta mañana que espero sea de beneficio para usted. Te etiquetaré allí, ya que sería genial recibir tus comentarios iniciales.

Todos 3 comentarios

No eres el único que usa las API internas para un uso programático.

Creo que sería una buena idea estabilizar dicha API y documentarla.

@cucumber/cucumber-js ¿qué opinas?

Hola @nicojs , ¡tu tiempo es impecable! Estoy escribiendo una propuesta para una nueva API programática esta mañana que espero sea de beneficio para usted. Te etiquetaré allí, ya que sería genial recibir tus comentarios iniciales.

Voy a cerrar esto ya que estamos teniendo una buena discusión sobre el #1711 sobre una nueva API para resolver esta necesidad.

Solo agregaré que la intención es dejar que la clase Cli funcione como lo hace en 8.0.0, aunque no esté en la API pública, para darles a los desarrolladores tiempo para cambiar a la nueva API y planchar cualquier problema allí.

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

Temas relacionados

jan-molak picture jan-molak  ·  4Comentarios

pellekrogholt picture pellekrogholt  ·  3Comentarios

NoNameProvided picture NoNameProvided  ·  5Comentarios

hdorgeval picture hdorgeval  ·  3Comentarios

zanona picture zanona  ·  4Comentarios