Как запустить конкретный сценарий Behat

Я пытаюсь запустить конкретный сценарий Behat из командной строки, вот что я делаю:

$ bin/behat features/features/baseline.feature:3

Однако это не поднимает сценарий.

Если я запустил

bin/behat features/features/baseline.feature

Я могу запустить весь файл функций.

Вот как выглядит файл: сценарий, который я пытаюсь запустить, находится в строке 3 в текстовом редакторе:

Feature:
  @api
  Scenario: Clear cache
    Given the cache has been cleared
    When I am on the homepage
    Then I should get a "200" HTTP response

  Scenario:
    Given I am not logged in
    When I am on the homepage
    Then I should see the text "We love our users"

Ответы

Ответ 1

Прежде всего, вы должны добавить полное описание файла функций, например:

Feature: Home page functionality
  In order to use application functionality
  As a website user
  I need to be able see the home page

И Scenario должно также иметь описание.

Вы можете запускать сценарии поведения с помощью тегов:

bin/behat --tags @api

В принципе каждый Scenario может иметь собственный тег. Команда Behat попытается найти все сценарии с этим тегом @api.

Также вы можете указать тег для всего файла Feature:

@whole-feature-file
Feature: Home page functionality

Сценарий запуска с использованием части имени:

bin/behat --name="element of feature"

Или в соответствии с комментарием @greggles:

Укажите имя файла функции и номер строки, например.

bin/behat features/file.feature:123 

где 123 - номер строки строки, такой как Scenario: Clear cache

Подробнее см. behat docs

Ответ 2

Я обнаружил, что я должен использовать полный путь к файлу функций только при выполнении определенного сценария. Например, если ваш файл функции находился в /var/www/html/tests/features/features, а также в вашем /var/www/html/tests, попробуйте эту команду:

bin/behat /var/www/html/tests/features/features/baseline.feature:3

Ответ 3

Выяснилось, что вы можете просто пометить сценарий любым пользовательским тегом, например @foobar.

Feature:
  @api @foobar
  Scenario: Clear cache
    Given the cache has been cleared
    When I am on the homepage
    Then I should get a "200" HTTP response

  Scenario:
    Given I am not logged in
    When I am on the homepage
    Then I should see the text "We love our users"

И тогда запускать только следующие сценарии:

behat --tags foobar