Cucumber-js: Aperçu du scénario avec plusieurs exemples

Créé le 6 juin 2018  ·  16Commentaires  ·  Source: cucumber/cucumber-js

Salut,
tout d'abord, un grand merci pour cette implémentation JS Gherkin.

Mon problème :
J'ai un aperçu du scénario avec quelques exemples. Ce scénario contient une étape pour obtenir un point de terminaison avec une URL et j'aimerais avoir un autre exemple dans ce plan de scénario avec des paramètres d'url.
Ensuite, je veux exécuter le scénario selon les premiers exemples multipliés par un autre exemple. Donc, si les premiers exemples ont par exemple 4 lignes et les deuxièmes 4 lignes = 4 x 4 = 16 pistes.

Fondamentalement le même que
https://github.com/Behat/Behat/issues/1082

Commentaire le plus utile

https://github.com/Behat/Behat/issues/1082 est que seule la dernière table d'exemples est exécutée. Je considère cela distinct de la multiplication de tableaux d'exemples.

Remplir un exemple. Demandez-vous ce qui suit :

Scenario Outline:
  Given <a> and <b>

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

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

Où il exécute 16 scénarios avec les combinaisons a1/b1, a1/b2, a1/b3, a1/b4, a2/b1, etc. Si nous devions prendre en charge une telle chose, je pense que nous avons besoin d'un mot-clé différent au lieu de surcharger des exemples comme cette configuration devient actuellement 8 scénarios où dans le premier 4 b est indéfini et dans le second 4 a est indéfini.

Tous les 16 commentaires

Je suis surpris que cela ne fonctionne pas déjà. C'est certainement le cas sur Java et Ruby ....

Je suis d'accord qu'il devrait être mis en œuvre.

https://github.com/Behat/Behat/issues/1082 est que seule la dernière table d'exemples est exécutée. Je considère cela distinct de la multiplication de tableaux d'exemples.

Remplir un exemple. Demandez-vous ce qui suit :

Scenario Outline:
  Given <a> and <b>

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

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

Où il exécute 16 scénarios avec les combinaisons a1/b1, a1/b2, a1/b3, a1/b4, a2/b1, etc. Si nous devions prendre en charge une telle chose, je pense que nous avons besoin d'un mot-clé différent au lieu de surcharger des exemples comme cette configuration devient actuellement 8 scénarios où dans le premier 4 b est indéfini et dans le second 4 a est indéfini.

@aslakhellesoy multiplie les exemples de tables fonctionnant en java/ruby ? Cucucmber-js traite correctement plusieurs tableaux d'exemples pour un seul schéma de scénario.

D'après ce que je retiens du ticket Behat, ce qu'ils veulent y parvenir n'est pas de multiplier le tableau, mais plutôt de regrouper des exemples en fonction de ce qu'ils expriment :

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

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

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

Plutôt que de composer :

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

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

je me trompe peut-être quand même

J'ai mal lu "plusieurs" tableaux d'exemples, ce qui fonctionne. La multiplication de tableaux d'exemples (multiplication matricielle ?) ne fonctionne pas. Je pense que ce serait un peu difficile à comprendre pour les gens.

Avez-vous envisagé par paires de générer une table plus petite ?

Désolé de vous induire en erreur en publiant un ticket Behat. J'ai besoin exactement de ce que charlierudolph a écrit, même avec un mot-clé différent.

Merci.

@znevrly, je suis d'accord pour tout multiplier serait déroutant par rapport aux exemples actuels. Je pense que par paires est la solution idéale car vous pouvez vous limiter à un ensemble représentatif de cas de test. @aslakhellesoy pensez -vous que nous voulons construire quelque chose comme par paires dans le cornichon ? (si on peut déterminer une belle interface)

Je ne pense pas que nous devrions construire par paires dans Gherkin - ce serait du fluage de fonctionnalités. Je pense qu'il est préférable d'utiliser un outil autonome pour générer un tableau, puis de le coller dans un fichier de fonctionnalités.

Cela ne semble pas très confortable. Des idées? :)

Des idées sur quoi ?

Avoir un mot-clé pour obtenir le comportement décrit (multiplication de tableaux d'exemples ou multiplication matricielle) sans avoir besoin de générer des tableaux manuellement.

Saviez-vous que vous n'avez besoin d'exécuter l'outil par paires qu'une seule fois pour générer un tableau à coller dans un plan de scénario ? Je ne sais pas ce qui vous met mal à l'aise à ce sujet.

Mais j'ai des dizaines de fichiers de fonctionnalités avec de nombreux scénarios. Dans le cas d'un "deuxième" tableau d'exemples, il ne s'agirait que de nombreux copier-coller et il est très clair quand est fait ou non. Et au cas où il y aurait une ligne supplémentaire dans la "deuxième" table d'exemple, je n'ai pas besoin de régénérer toutes les tables fusionnées.

De plus avec les tables générées, il n'est pas très clair s'il y a toutes les combinaisons possibles ou non. :(

Nous pouvons ajouter une API de préprocesseur Gherkin à un moment donné. Lorsque nous le faisons, je pense que la fonctionnalité que vous demandez devrait être implémentée à l'aide de cette API. Ce n'est pas une priorité pour le moment, donc si cela est urgent pour vous, je vous suggère de générer vous-même les fichiers Gherkin.

comment vais-je l'utiliser dans les exemples - L'e-mail doit être au format " first_name .

Est-il possible de ne choisir qu'un seul scénario dans le tableau des exemples ? disons que j'ai

A| B | C|
| Forfait | 'HD' | 'SHP' |
| ZP | 'HD' | 'SHP' |

Si à partir d'un fichier de fonctionnalités (disons bonjourWorld.feature) j'appelle un autre fichier de fonctionnalités (Print.feature) qui a un aperçu de scénario avec le tableau ci-dessus, alors est-il possible de choisir un scénario à exécuter à partir du premier fichier de fonctionnalités ?

Cette page vous a été utile?
0 / 5 - 0 notes