Cucumber-js: Esquema del escenario con varios ejemplos

Creado en 6 jun. 2018  ·  16Comentarios  ·  Fuente: cucumber/cucumber-js

Hola,
En primer lugar, muchas gracias por tener esta implementación de JS Gherkin.

Mi problema:
Tengo un esquema de escenario con algunos ejemplos. Este escenario contiene un paso para obtener un punto final con alguna URL y me gustaría tener otros Ejemplos en este Esquema de escenario con parámetros de URL.
Luego, quiero ejecutar el escenario de acuerdo con los primeros ejemplos multiplicados por otros ejemplos. Entonces, si los primeros Ejemplos tienen, por ejemplo, 4 filas y las segundas 4 filas = 4 x 4 = 16 ejecuciones.

Básicamente lo mismo que
https://github.com/Behat/Behat/issues/1082

Comentario más útil

https://github.com/Behat/Behat/issues/1082 es que solo se ejecuta la última tabla de ejemplos. Lo considero independiente de la multiplicación de tablas de ejemplo.

Completando un ejemplo. ¿Estás pidiendo lo siguiente?

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

Donde ejecuta 16 escenarios con las combinaciones a1 / b1, a1 / b2, a1 / b3, a1 / b4, a2 / b1, etc. Si tuviéramos que admitir tal cosa, creo que necesitamos una palabra clave diferente en lugar de sobrecargar Ejemplos como esta configuración se convierte actualmente en 8 escenarios donde en los primeros 4 b no está definido y en el segundo 4 a no está definido.

Todos 16 comentarios

Me sorprende que esto no funcione ya. Definitivamente lo hace en Java y Ruby ...

Estoy de acuerdo en que debería implementarse.

https://github.com/Behat/Behat/issues/1082 es que solo se ejecuta la última tabla de ejemplos. Lo considero independiente de la multiplicación de tablas de ejemplo.

Completando un ejemplo. ¿Estás pidiendo lo siguiente?

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

Donde ejecuta 16 escenarios con las combinaciones a1 / b1, a1 / b2, a1 / b3, a1 / b4, a2 / b1, etc. Si tuviéramos que admitir tal cosa, creo que necesitamos una palabra clave diferente en lugar de sobrecargar Ejemplos como esta configuración se convierte actualmente en 8 escenarios donde en los primeros 4 b no está definido y en el segundo 4 a no está definido.

@aslakhellesoy está multiplicando tablas de ejemplo que funcionan en java / ruby? Cucucmber-js trata correctamente con múltiples tablas de ejemplos para un esquema de escenario único.

Por lo que saco del ticket Behat, lo que quieren lograr allí no es multiplicar la tabla, sino agrupar ejemplos en función de lo que expresan:

    Examples: of ordinary Latin character inputs
      | input |
      | a     |
      | z     |
      | 0     |

    Examples: of Unicode inputs
      | input  |
      | U+0046 |
      | U+0058 |

    Examples: of invalid inputs
      | input  |
      | <      |
      | </     |

En lugar de capitalizar:

    Examples: Usernames
         | username   |
         | admin      |
         | user       |
         | maintainer |
         | moderator  |

    Examples: Passwords
         | password |
         | valid    |
         | invalid  |

Aunque podría estar equivocado

He leído mal "múltiples" tablas de ejemplo, lo cual funciona. La multiplicación de tablas de ejemplo (¿multiplicación de matrices?) No funciona. Creo que sería un poco difícil de entender para la gente.

¿Ha considerado por pares generar una tabla más pequeña?

Lamento engañarlo publicando un boleto de Behat. Necesito exactamente lo que escribe charlierudolph, incluso con una palabra clave diferente.

Gracias.

@znevrly Estoy de acuerdo en que multiplicar todo sería confuso si se @aslakhellesoy , ¿crees que queremos construir algo parecido a pares en pepinillos? (si podemos determinar una interfaz agradable)

No creo que debamos construir en pares en Gherkin, eso sería un avance de características. Creo que es mejor usar una herramienta independiente para generar una tabla y luego pegarla en un archivo de características.

Eso no suena muy cómodo. ¿Algunas ideas? :)

¿Alguna idea sobre qué?

Tener alguna palabra clave para lograr el comportamiento descrito (multiplicar tablas de ejemplo o multiplicación de matrices) sin necesidad de generar tablas manualmente.

¿Se dio cuenta de que solo necesita ejecutar la herramienta por pares una vez para generar una tabla y pegarla en un esquema de escenario? No estoy seguro de qué te hace sentir incómodo con eso.

Pero tengo docenas de archivos de características con muchos escenarios. En el caso del "segundo", la tabla de ejemplos sería solo pegar muchas copias y es muy claro cuándo se hace o no. Y en caso de que haya una fila adicional en la "segunda" tabla de ejemplo, no necesito volver a generar todas las tablas fusionadas.

Más sobre las tablas generadas no está muy claro si hay todas las combinaciones posibles o no. :(

Es posible que agreguemos una API de preprocesador Gherkin en algún momento. Cuando lo hagamos, creo que la funcionalidad que está solicitando debería implementarse utilizando esa API. No es una prioridad en este momento, así que si esto es urgente para usted, le sugiero que genere los archivos Gherkin usted mismo.

¿Cómo usaré esto en los ejemplos? El correo electrónico debe tener el formato "first_name.

¿Es posible elegir solo un escenario de la tabla de ejemplos? digamos que tengo

A | B | C |
| Paquete | 'HD' | 'SHP' |
| PZ | 'HD' | 'SHP' |

Si desde un archivo de características (digamos helloWorld.feature) estoy llamando a otro archivo de características (Print.feature) que tiene un esquema de escenario con la tabla anterior, ¿es posible elegir un escenario para ejecutar desde el primer archivo de características?

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