How do I run a specific Behat scenario

JeremyKirkham picture JeremyKirkham · Mar 24, 2016 · Viewed 18.2k times · Source

I'm trying to run a specific Behat scenario from the command line, here's what I'm doing:

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

However this isn't picking up the scenario.

If I run

bin/behat features/features/baseline.feature

I can get the entire feature file to run.

Here's what the file looks like -- the scenario I'm trying to run is on line 3 in my text editor:

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"

Answer

Igor Lantushenko picture Igor Lantushenko · Mar 24, 2016

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-file
Feature: 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