2016-08-23 10 views
1

Ich habe eine Funktion in meiner FeatureContext.php, die @AfterScenario verwendet, um gefälschte Datenbankeinträge zu bereinigen, die während des Tests erstellt wurden. Ich möchte ein @debug-Tag zu einem bestimmten Szenario hinzufügen. Sagen Sie der Funktion, die Einträge, die für dieses Szenario erstellt wurden, NICHT zu löschen, wenn das Tag vorhanden ist.in Behat, Gibt es eine Möglichkeit, für ein bestimmtes Tag zu testen?

/** 
* Deletes the records created during the scenarios. 
* @AfterScenario 
*/ 
public function cleanDB(AfterScenarioScope $scope) 
{ 
    // if [email protected] present 
     // delete files from database 
    // end if 
} 
+0

Welche Version von Behat? – lauda

+0

Nicht mit Tags versucht, aber es sollte funktionieren, um den Szenariotitel zu erhalten, oder um eine Variable festzulegen und basierend darauf zu entscheiden. – lauda

+0

@lauda, ​​Behat 3.1 – zkent

Antwort

1

@ Lauda's Antwort hat mich nah und ich habe den Rest herausgefunden.

Ich habe die hasTag() - Funktion von Behat Szenario-Objekt verwendet.

Wenn ich das Szenario mit @debug dekoriere, kann ich dafür testen und meine Funktionalität ändern.

@debug 
Scenario: do the thing 
    ... 
+0

Dies funktioniert nicht, wenn die Tags auf die Funktion eingestellt sind. Du musst etwas tun wie: 'in_array ('debug', array_merge ($ scope-> getFeature() -> getTags(), $ scope-> getScenario() -> getTags())).' – hackel

Verwandte Themen