How do I run a specific Behat scenario How do I run a specific Behat scenario php php

How do I run a specific Behat scenario


First of all you should add the whole description of the feature file, like:

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

And Scenario should also has a description.

You can run behat scenarios using tags:

bin/behat --tags @api

Basically every Scenario could has own tag. Behat command will try to find all scenarios with that @api tag.

Also you can specify tag for the whole Feature file:

@whole-feature-fileFeature: Home page functionality

Run Scenario using part of the name:

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

Or according to the @greggles comment:

Specify the feature file name and line number, e.g.

bin/behat features/file.feature:123 

where 123 is the line number of the line like Scenario: Clear cache

For more details see behat docs


Found out you can simply tag a scenario with any custom tag, for example @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"

And then have only this scenarios run with:

behat --tags foobar


I find that I have to use the full path to the feature file only when executing a specific scenario. For example, if your feature file was in /var/www/html/tests/features/features, and your in /var/www/html/tests then try this command:

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