Как мне повторно запустить схему сценария огурца с другими параметрами? - PullRequest
2 голосов
/ 07 сентября 2011

У меня есть схема сценария огурца для тестирования веб-службы, которая похожа на:

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    |

, которая работает нормально, однако я хочу повторно запустить ту же схему сценария и сценарии для каждого из наших веб-служб.По сути, я хотел бы добавить еще один блок сценариев, например:

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» таким образом, чтобы она применялась ко всем сценариям функции.

Есть ли способ реализовать это в огурце?

Ответы [ 2 ]

4 голосов
/ 07 сентября 2011

Огурец на самом деле не поддерживает итерацию по сценариям.Ваш единственный «родной» вариант на самом деле состоит в том, чтобы выполнить «перекрестное соединение» самостоятельно, вручную.

Когда я работаю, у нас очень похожая ситуация, мы запускаем Cucumber 8 раз, а затем собираем результаты,требует много сантехники и производительность ужасна.

Недавно я собрал драгоценный камень, предназначенный для решения этого типа проблемы, он очень грубый, и я лично не использовал его в гневе, но это может помочьВы, посмотрите на https://github.com/jmerrifield/cuke_iterations. Я был бы рад помочь вам начать работу с ним, если вы считаете, что он может быть полезен.

3 голосов
/ 06 марта 2014

Вы можете использовать таблицу, но таблица повторяет только один шаг по количеству строк, поэтому я преобразовал два шага в один. код выглядит следующим образом:

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                     |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...