Cucumber-js: Szenario-Übersicht mit mehreren Beispielen

Erstellt am 6. Juni 2018  ·  16Kommentare  ·  Quelle: cucumber/cucumber-js

Hallo,
zunächst einmal vielen Dank für diese JS Gherkin-Implementierung.

Mein Problem:
Ich habe Szenario-Übersicht mit einigen Beispielen. Dieses Szenario enthält einen Schritt zum Abrufen des Endpunkts mit einer URL und ich hätte gerne ein weiteres Beispiel in dieser Szenarioübersicht mit Parametern der URL.
Dann möchte ich das Szenario gemäß den ersten Beispielen multipliziert mit anderen Beispielen ausführen. Wenn also erste Beispiele zB 4 Reihen haben und zweite 4 Reihen = 4 x 4 = 16 Durchläufe.

Im Grunde das gleiche wie
https://github.com/Behat/Behat/issues/1082

Hilfreichster Kommentar

https://github.com/Behat/Behat/issues/1082 ist, dass nur die letzte Beispieltabelle ausgeführt wird. Ich betrachte das getrennt von der Multiplikation von Beispieltabellen.

Ausfüllen eines Beispiels. Verlangst du Folgendes:

Scenario Outline:
  Given <a> and <b>

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

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

Wo es 16 Szenarien mit den Kombinationen a1/b1, a1/b2, a1/b3, a1/b4, a2/b1 usw. abläuft. Wenn wir so etwas unterstützen sollten, brauchen wir, glaube ich, ein anderes Schlüsselwort, anstatt Beispiele zu überladen wie Dieses Setup wird derzeit zu 8 Szenarien, in denen im ersten 4 b undefiniert ist und im zweiten 4 a undefiniert ist.

Alle 16 Kommentare

Ich bin überrascht, dass das noch nicht funktioniert. Es funktioniert definitiv auf Java und Ruby....

Ich stimme zu, dass es umgesetzt werden sollte.

https://github.com/Behat/Behat/issues/1082 ist, dass nur die letzte Beispieltabelle ausgeführt wird. Ich betrachte das getrennt von der Multiplikation von Beispieltabellen.

Ausfüllen eines Beispiels. Verlangst du Folgendes:

Scenario Outline:
  Given <a> and <b>

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

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

Wo es 16 Szenarien mit den Kombinationen a1/b1, a1/b2, a1/b3, a1/b4, a2/b1 usw. abläuft. Wenn wir so etwas unterstützen sollten, brauchen wir, glaube ich, ein anderes Schlüsselwort, anstatt Beispiele zu überladen wie Dieses Setup wird derzeit zu 8 Szenarien, in denen im ersten 4 b undefiniert ist und im zweiten 4 a undefiniert ist.

@aslakhellesoy multipliziert Beispieltabellen, die in Java / Ruby arbeiten? Cucucmber-js geht korrekt mit mehreren Beispieltabellen für einen einzelnen Szenarioentwurf um.

Nach dem, was ich dem Behat-Ticket entnehme, wollen sie dort nicht die Tabelle multiplizieren, sondern die Beispiele nach dem, was sie ausdrücken, gruppieren:

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

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

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

Anstatt zu komponieren:

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

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

Ich könnte mich aber irren

Ich habe "mehrere" Beispieltabellen falsch gelesen, was funktioniert. Das Multiplizieren von Beispieltabellen (Matrixmultiplikation?) funktioniert nicht. Ich denke, das wäre für die Leute ein bisschen schwer zu verstehen.

Haben Sie schon einmal daran gedacht ,

Es tut uns leid, Sie durch das Posten von Behat-Tickets in die Irre zu führen. Ich brauche genau das, was charlierudolph schreiben, auch mit anderen Stichworten.

Vielen Dank.

@znevrly Ich stimme zu, dass es verwirrend wäre, alles zu multiplizieren, wenn man es gegen die aktuellen Beispiele @aslakhellesoy glaubst du, wir wollen so etwas wie paarweise in Gurke einbauen? (wenn wir eine schöne Schnittstelle finden können)

Ich denke nicht, dass wir Gherkin paarweise einbauen sollten - das wäre Feature-Creep. Ich denke, es ist besser, ein eigenständiges Werkzeug zum Generieren einer Tabelle zu verwenden und sie dann in eine Feature-Datei einzufügen.

Das klingt nicht sehr komfortabel. Irgendwelche Ideen? :)

Irgendwelche Ideen wofür?

Um ein Schlüsselwort zu haben, um das beschriebene Verhalten zu erreichen (Beispieltabellen multiplizieren oder Matrixmultiplikation), ohne Tabellen manuell generieren zu müssen.

Wussten Sie, dass Sie das paarweise Tool nur einmal ausführen müssen, um eine Tabelle zum Einfügen in eine Szenario-Gliederung zu generieren? Ich bin mir nicht sicher, was Sie daran stört.

Aber ich habe Dutzende von Feature-Dateien mit vielen Szenarien. Im Fall der "zweiten" Beispieltabelle würde nur viele Kopien eingefügt werden und es ist sehr klar, wann es fertig ist oder nicht. Und für den Fall, dass in der "zweiten" Beispieltabelle eine zusätzliche Zeile vorhanden ist, muss ich nicht alle zusammengeführten Tabellen neu generieren.

Außerdem ist bei generierten Tabellen nicht ganz klar, ob es alle möglichen Kombinationen gibt oder nicht. :(

Wir können irgendwann eine Gherkin-Präprozessor-API hinzufügen. Wenn wir dies tun, sollte die gewünschte Funktionalität meiner Meinung nach mit dieser API implementiert werden. Dies hat im Moment keine Priorität. Wenn dies für Sie dringend ist, schlage ich vor, dass Sie Gherkin-Dateien selbst erstellen.

Wie werde ich dies in Beispielen verwenden - E-Mail sollte das Format "Vorname. [email protected] " haben.

Ist es möglich, nur ein Szenario aus der Beispieltabelle auszuwählen? Sagen wir, ich habe

A| B | C|
| Bündel | 'HD' | 'SHP' |
| PZ | 'HD' | 'SHP' |

Wenn ich aus einer Feature-Datei (sagen wir helloWorld.feature) eine andere Feature-Datei (Print.feature) aufrufe, die eine Szenarioübersicht mit der obigen Tabelle hat, ist es dann möglich, ein Szenario auszuwählen, das aus der ersten Feature-Datei ausgeführt werden soll?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen