2017-03-11 38 views
0

我想告訴behat與其他域的url運行每個功能文件。Behat每個域的多個功能

在同一文件夾中有3個不同域(更改)的3個功能。

domain1.feature 
domain2.feature 
domain3.feature 

他們做同樣的FeatureContext.php非常類似的事情,但他們有不同的參數和設置的其他方案(每個域)。項目的性質是將3個以上的域名保存在同一個空間名稱中。

我想我可以用

Feature: "Domain1 Tests" 

,然後在這個構造,但不知道在哪裏看或怎麼讀。每當一個域被替換時,我不想編輯behat.yml。

任何人都解決了類似的挑戰或有任何建議嗎?

回答

1

在每個功能中使用Background方案來設置域。

例如:

Background: 
    Given I am on my_domain domain 

    Scenario: 

或者,如果你有相同的情況下,你應該寫一些方法來處理基於域或其他參數的數據並刪除重複的場景。
儘量不要複製場景才能在不同的域上執行它們,這將是一個不好的做法。

0

有一兩件事你可以做的是這樣的:

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

在你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 | 

然後,對特定領域的測試,你可以寫他們在文件中標明DOMAIN1 .feature,domain2.feature和domain3.feature。

這意味着你不會複製你的類似場景。