0

Also im Grunde möchte ich in der Lage sein, die gleiche Feature-Datei zu verwenden und zwei separate Tests auszuführen, einen mit @mobile und den anderen mit @desktop. Auf diese Weise muss ich keine andere Feature-Datei für nur einen einzigen Schritt duplizieren.Ist es möglich, Gurkenschritte bedingt im selben Szenario auszuführen?

So etwas wie folgt aus:

Scenario: Steps will run conditionally if tagged 
    Given user is logged in 
    @mobile 
    When user clicks "logout link on mobile" 
    @desktop 
    When user clicks "logout link on desktop" 
    Then user will be logged out 

Wenn ich den mobilen Testlauf (werde ich @ ~ Desktop in der Konfigurationsdatei), ich will es die @desktop Schritt ignorieren und umgekehrt.

Antwort

0

Verwenden Sie eine Scenario Outline und legen Sie zwei Examples Tabellen und markieren Sie sie. Verwenden Sie das gewünschte Tag im Filter, um Ihren Test auszuführen. Das Tag, das Sie eingefügt haben, wird anders ausgeführt.

Scenario Outline: Steps will run conditionally if tagged 
    Given user is logged in 
    When user clicks <link> 
    Then user will be logged out 

@mobile 
Examples: 
| link | 
| logout link on mobile | 

@desktop 
Examples: 
| link | 
| logout link on desktop | 
+0

Ja danke !! Das ist genau das, was ich brauchte :) – paolinni

1

Es gibt eine weitere Annäherung Sie für diesen Fall versuchen können -

einen einzigen Schritt in Cucumber wie diese halten:

When user clicks logout link 
Then user will be logged out 

Im Code für diesen Schritt, ein, wenn die Bedingung hinzufügen, wo Sie anrufen entweder mobile oder Desktop-bezogene Funktion basierend auf dem Flag, das Sie aus der Konfigurationsdatei übergeben?

+0

Ja, das scheint die machbarste Route für das, was ich zu erreichen versuche. Ich werde sehen, ob ich es innerhalb des Schrittes arbeiten kann. – paolinni

Verwandte Themen