Cucumber-js: Схема сценария с несколькими примерами

Созданный на 6 июн. 2018  ·  16Комментарии  ·  Источник: cucumber/cucumber-js

Привет,
Прежде всего, большое спасибо за эту реализацию JS Gherkin.

Моя проблема:
У меня есть схема сценария с некоторыми примерами. Этот сценарий содержит шаг с получением конечной точки с некоторым URL-адресом, и я хотел бы иметь другие примеры в этом плане сценария с параметрами URL-адреса.
Затем я хочу запустить сценарий в соответствии с первыми примерами, умноженными на другие примеры. Итак, если первые примеры имеют, например, 4 строки, а вторые 4 строки = 4 x 4 = 16 пробегов.

В основном то же, что и
https://github.com/Behat/Behat/issues/1082

Самый полезный комментарий

https://github.com/Behat/Behat/issues/1082 заключается в том, что выполняется только последняя таблица примеров. Я считаю это отдельным от умножения примеров таблиц.

Заполнение примера. Вы просите о следующем:

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

Там, где он запускает 16 сценариев с комбинациями a1 / b1, a1 / b2, a1 / b3, a1 / b4, a2 / b1 и т. Д. Если мы должны были поддерживать такую ​​вещь, я думаю, нам нужно другое ключевое слово вместо перегрузки примеров, как эта установка в настоящее время превращается в 8 сценариев, где в первых 4 b не определено, а во вторых 4 a не определено.

Все 16 Комментарий

Я удивлен, что это уже не работает. Это определенно работает на Java и Ruby ....

Я согласен, что это должно быть реализовано.

https://github.com/Behat/Behat/issues/1082 заключается в том, что выполняется только последняя таблица примеров. Я считаю это отдельным от умножения примеров таблиц.

Заполнение примера. Вы просите о следующем:

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

Там, где он запускает 16 сценариев с комбинациями a1 / b1, a1 / b2, a1 / b3, a1 / b4, a2 / b1 и т. Д. Если мы должны были поддерживать такую ​​вещь, я думаю, нам нужно другое ключевое слово вместо перегрузки примеров, как эта установка в настоящее время превращается в 8 сценариев, где в первых 4 b не определено, а во вторых 4 a не определено.

@aslakhellesoy умножает примеры таблиц, работающих в java / ruby? Cucucmber-js правильно работает с несколькими таблицами примеров для одного плана сценария.

Из того, что я взял из заявки на Behat, они хотят достичь не умножения таблицы, а, скорее, группировки примеров на основе того, что они выражают:

    Examples: of ordinary Latin character inputs
      | input |
      | a     |
      | z     |
      | 0     |

    Examples: of Unicode inputs
      | input  |
      | U+0046 |
      | U+0058 |

    Examples: of invalid inputs
      | input  |
      | <      |
      | </     |

Вместо того, чтобы смешивать:

    Examples: Usernames
         | username   |
         | admin      |
         | user       |
         | maintainer |
         | moderator  |

    Examples: Passwords
         | password |
         | valid    |
         | invalid  |

Хотя я могу ошибаться

Я неправильно прочитал "несколько" примеров таблиц, и это работает. Умножение примеров таблиц (умножение матриц?) Не работает. Я думаю, людям будет немного сложно это понять.

Вы думали попарно сгенерировать меньшую таблицу?

Извините, что ввел вас в заблуждение, разместив билет на Behat. Мне нужно именно то, что пишет charlierudolph, даже с другим ключевым словом.

Спасибо.

@znevrly Я согласен, что умножение всего может сбить с толку, если @aslakhellesoy, как вы думаете, мы хотим попарно построить что-то вроде корнишона? (если мы сможем определить красивый интерфейс)

Я не думаю, что мы должны встраивать в Gherkin попарно - это было бы фичей. Я думаю, что лучше использовать автономный инструмент для создания таблицы, а затем вставить ее в файл функций.

Это звучит не очень удобно. Любые идеи? :)

Есть идеи о чем?

Чтобы иметь какое-то ключевое слово для достижения описанного поведения (умножение таблиц примеров или умножение матриц) без необходимости создавать таблицы вручную.

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

Но у меня есть десятки файлов функций со многими сценариями. В случае «второй» таблицы примеров будет просто много копий, и очень ясно, когда это делается, а когда нет. И в случае, если во «второй» таблице примера будет дополнительная строка, мне не нужно повторно создавать все объединенные таблицы.

Более того, со сгенерированными таблицами не очень понятно, есть ли все возможные комбинации или нет. :(

В какой-то момент мы можем добавить API препроцессора Gherkin. Когда мы это сделаем, я думаю, что запрашиваемые вами функции должны быть реализованы с использованием этого API. На данный момент это не является приоритетом, поэтому, если для вас это срочно, я предлагаю вам самостоятельно сгенерировать файлы Gherkin.

как я буду использовать это в примерах - Электронная почта должна быть в формате " имя_последнее_имя@компания.com "

Можно ли выбрать только один сценарий из таблицы примеров? скажем, у меня есть

А | B | C |
| Связка | «HD» | «ШП» |
| PZ | «HD» | «ШП» |

Если из одного файла функции (скажем, helloWorld.feature) я вызываю другой файл функции (Print.feature), который имеет схему сценария с приведенной выше таблицей, то можно ли выбрать сценарий для запуска из первого файла функции?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги