2011-09-07 65 views
2

我有用於測試web服務類似於一個黃瓜方案概要:如何使用不同參數重新運行黃瓜場景大綱?

Scenario Outline: Check the limit functionality 
    When I GET "/api/activity-schedule-items.xml" with parameters {<filter>} 
    Then the xml attribute "total-count" is "<count>" 

    Scenarios: 
    | filter  | count | 
    | 'limit' => 0 | 0  | 
    | 'limit' => 2 | 2  | 
    | 'limit' => 2 | 2  | 
    | 'limit' => -1 | 15 | 

的正常工作,但是我想重新運行同樣的情景大綱和方案,供我們每一個web服務的。基本上,我想添加另一個Scenarios塊如:

Scenario Outline: Check the limit functionality 
    When I GET "<api>" with parameters {<filter>} 
    Then the xml attribute "total-count" is "<count>" 

    Scenarios: 
    | filter  | count | 
    | 'limit' => 0 | 0  | 
    | 'limit' => 2 | 2  | 
    | 'limit' => 2 | 2  | 
    | 'limit' => -1 | 15 | 

    Scenarios: 
    | api        | 
    | /api/activity-schedule-items.xml | 
    | /api/activity-schedules.xml  | 
    | /api/tasks.xml     | 

並且讓黃瓜做兩個表之間的交叉連接。

更好的辦法是指定「api」表格,以使其適用於該功能中的所有場景。

有沒有一種方法可以在黃瓜中執行此操作?

回答

4

黃瓜並不真正支持場景的「迭代」。你唯一的'原生'選項實際上是親自做'交叉連接'。

我在哪裏工作我們有一個非常相似的情況,我們運行黃瓜8個不同的時間,然後彙總結果,這需要大量的管道和性能是可怕的。

我最近放了一塊寶石,意在幫助解決這類問題,它非常粗糙,我沒有親自使用它,但它可以幫助你,看看https://github.com/jmerrifield/cuke_iterations。如果您認爲它可能有用,我很樂意幫助您啓動並運行它。

2

您可以使用表格,但表格僅在單行數據行上迭代,因此我將兩個步驟轉換爲一個。代碼如下:

Scenario Outline: Check the limit functionality 
    When I GET api with following parameters Then the xml attribute "total-count" is as follows 
    | 'limit' => 0 | 0  | <api> | 
    | 'limit' => 2 | 2  | <api> | 
    | 'limit' => 2 | 2  | <api> | 
    | 'limit' => -1 | 15 | <api> | 

    Examples: 
    |   api      | 
    |/api/activity-schedule-items.xml | 
    |/api/activity-schedules.xml  | 
    |/api/tasks.xml     | 

二是,你可能會使用

Scenario Outline: Check the limit functionality 
    When I GET "<api>" with parameters {<filter>} 
    Then the xml attribute "total-count" is "<count>" 

    Examples: 
    | filter  | count |   api     | 
    | 'limit' => 0 | 0  | /api/activity-schedule-items.xml | 
    | 'limit' => 2 | 2  | /api/activity-schedule-items.xml | 
    | 'limit' => 2 | 2  | /api/activity-schedule-items.xml | 
    | 'limit' => -1 | 15 | /api/activity-schedule-items.xml | 
    | 'limit' => 0 | 0  | /api/activity-schedules.xml  | 
    | 'limit' => 2 | 2  | /api/activity-schedules.xml  | 
    | 'limit' => 2 | 2  | /api/activity-schedules.xml  | 
    | 'limit' => -1 | 15 | /api/activity-schedules.xml  | 
    | 'limit' => 0 | 0  | /api/tasks.xml     | 
    | 'limit' => 2 | 2  | /api/tasks.xml      | 
    | 'limit' => 2 | 2  | /api/tasks.xml      | 
    | 'limit' => -1 | 15 | /api/tasks.xml      | 
傳統方式
相關問題