2016-03-30 10 views
0

Ich habe 2 sehr unterschiedliche Behat Profile:Run 2 Behat Profile mit unterschiedlichen Funktionen in 1 Ergebnis

simple: 
    suites: 
    default: 
     contexts: 
     - rdx\behatvars\BehatVariablesContext 
     - SimpleFeatureContext 
    extensions: 
     rdx\behatvars\BehatVariablesExtension: ~ 
proxy: 
    suites: 
    default: 
     contexts: 
     - ProxyFeatureContext 

simple lädt einen lokalen Kontext, proxy Lasten der anderen. simple muss die Erweiterung haben, proxy muss nicht.

Kombiniert führen sie Tests durch, die vollständig bestehen sollten. Zur Zeit, das ist mein run-tests Skript:

vendor/bin/behat --profile=proxy --format-settings='{"paths":false}' features/proxy.feature && 
echo && 
vendor/bin/behat --profile=simple --format-settings='{"paths":false}' features/simple.feature 

Es ist nicht nur hässlich, es nicht richtig funktioniert. Das && stellt sicher, dass das richtige Ergebnis an den Aufrufer run-tests weitergeleitet wird, aber sie bedeuten auch, dass der 2. Test nicht ausgeführt wird, wenn der erste Test fehlschlägt.

Wie halte ich beide:

  • Beide Tests müssen
  • Der Exit-Code ausführen muss der letzte fehlschlagen (oder 1 wenn überhaupt ausfällt)

Ich will nicht machen run-tests komplizierter, so ist dies mehr eine Behat Frage als Bash. Kann ich Behath sagen, dass er 2 Profile mit separaten Funktionen ausführen und das kombinierte Ergebnis zurückgeben soll?

Antwort

0

So etwas vielleicht?

Wenn einer der Befehle fehlschlägt, wird der Beendigungscode vom Fehler an den Aufrufer weitergegeben. (Wenn beide fehlschlagen, ist der letzte Fehler derjenige, den wir an den Aufrufer zurückgeben.) Wenn ein Test erfolgreich ist, berühren wir nicht die Variable result. Wenn beide erfolgreich sind, bleibt es bei Null (Erfolg).

+0

Das macht das Testskript komplizierter. Ich suche eine Behat Lösung. – Rudie

+0

Wenn das Skript von Bash analysiert wird, sehe ich keine Möglichkeit, Ihr vorhandenes Skript zu dem zu machen, wonach Sie fragen. Ich denke auch nicht, dass das komplizierter ist. Dies erstreckt sich leicht auf weitere Tests und ist leicht zu verstehen, sobald Sie die Grundidee geklärt haben. – tripleee

+0

Ich bin mit Behat jedoch völlig unbekannt. Die unheilige Mischung aus YAML und JSON, die ich oben gesehen habe, lässt mich denken, dass es vielleicht besser ist; aber natürlich ist diese Antwort eine Aufnahme im Dunkeln, und wenn Sie nicht denken, dass es überhaupt geeignet ist, werde ich mehr als glücklich sein, es zu löschen. – tripleee

Verwandte Themen