11/14/2013

Задание строгого порядка выполнения фич Cucumber'a


По умолчанию выполнение features/scenarios в Cucumber проходит согласно следующим правилам:

  1. В алфавитном порядке папок в папке features
  2. В алфавитном порядке файлов *.feature в папке
  3. В порядке размещения файлов *.feature находящихся в корне папки features
К примеру, мы имеем следующую структуру тестов
  • features
    • folder1
      • file1.feature
      • file2.feature
    • folder2
      • file3.feature
    • file4.feature
    • file5.feature
Выполнение команды cucumber приведет к запуску тестов в следующем порядке:
features/folder1/file1.feature
features/folder1/file2.feature
features/folder2/file3.feature
features/file4.feature
features/file5.feature

Но что же делать, если тестировщику нужно задать строгий порядок выполнения фич при запуске тестов?

При запуске Cucumber можно указать фичи в виде списка и их запуск будет произведен в указанном порядке. Например:
cucumber features/folder1/file2.feature features/folder2/file3.feature

Что делать с остальными фичами? Можно указать папку features в конце списка. Cucumber довольно умный и не станет запускать заново фичи, которые уже запускались до этого.
Таким образом строка
cucumber features/folder1/file2.feature features/folder2/file3.feature features
запустит тесты в нужном вам порядке.

6 комментариев:

  1. а какие ситуации требуют строгого порядка выполнения фич?

    ОтветитьУдалить
  2. Если требуется проходить тесты в строгом порядке, то это говорит о том, что тесты зависимые. А это не гут.

    ОтветитьУдалить
  3. Ну, к примеру, мне необходимо, чтобы в первую очередь был пройден тест фичи 2, затем тест фичи 3 и только потом фичи 1.
    Такая вот последовательность важности! Для этого и необходимо...

    ОтветитьУдалить
    Ответы
    1. Это неправильный подход к распределению тестов по важности. В какой-то момент будет сложно оперировать наборами тестов при указании порядка выполнения. Для того, чтобы выполнять тесты по важности, их лучше объединять в группы по тегам - https://github.com/cucumber/cucumber/wiki/Tags. Так проще менять важность сценария будет.

      Удалить
    2. Важность состоит только в приоритете? Или взаимосвязь порядка выполнения будет влиять на запуск каждого конкретного сценария?

      Удалить
    3. Может это и не правильный подход, но работающий. И для единичного использования вполне резонный подход.

      Удалить