2017-03-11 13 views
0

Ich würde gerne Behath jede Feature-Datei mit anderen Domain-URL ausführen.Behat mehrere Funktionen pro Domäne

Es gibt 3 Funktionen für 3 verschiedene Domänen (ändern) im selben Ordner.

domain1.feature 
domain2.feature 
domain3.feature 

Sie tun sehr ähnliche Dinge in der gleichen FeatureContext.php aber sie haben unterschiedliche Parameter und eine Reihe von anderen Szenarien (pro Domäne). Die Art des Projekts besteht darin, 3+ Domains im selben Space-Namen zu halten.

Ich dachte, ich

Feature: "Domain1 Tests" 

und diese dann eingelesen Konstruktor verwenden könnte, aber nicht sicher, wo oder wie. Ich will Behath.yml nicht jedes Mal bearbeiten, wenn eine Domäne ersetzt wird.

Jeder hat ähnliche Herausforderung gelöst oder einen Vorschlag haben?

Antwort

1

Verwenden Sie ein Background Szenario in jeder Funktion, um die Domäne festzulegen.

Zum Beispiel:

Background: 
    Given I am on my_domain domain 

    Scenario: 

Oder wenn Sie die gleichen Szenarien haben, sollten Sie einige Methoden schreiben, um die Daten zu verarbeiten, basierend auf der Domäne oder andere Parameter und doppelte Szenarien zu entfernen.
Versuchen Sie nicht, Szenarien zu duplizieren, nur um sie auf verschiedenen Domänen ausführen zu können, es wäre eine schlechte Übung.

0

Eine Sache, die Sie tun können, ist dies:

domain1.feature 
domain2.feature 
domain3.feature 
common.feature 

In Ihrem common.feature:

Scenario Outline: A common scenario for 3 domains 
Given I am on "<domain>" 
    And I do some setup thing 
When I do some action 
Then I should see some <outcome> 

Examples: 
    | domain | outcome | 
    | domain1 | outcome1 | 
    | domain2 | outcome2 | 
    | domain3 | outcome3 | 

Und dann, für die Domain-spezifische Tests, können Sie sie schreiben in die Dateien domain1 markiert .feature, domain2.feature und domain3.feature.

Dies bedeutet, dass Sie Ihre ähnlichen Szenarien nicht duplizieren.

Verwandte Themen