How do I run a specific Behat scenario
Asked Answered
B

3

40

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"
Boding answered 24/3, 2016 at 4:31 Comment(0)
C
56

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

Charcoal answered 24/3, 2016 at 7:41 Comment(2)
Not sure if this is a newly available option, but it is also possible to 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.Luzern
You can even lauch tests on a range of lines, as explained in bin/behat --help: *.feature:10-*, *.feature:10-20Kettie
A
5

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
Albemarle answered 22/1, 2019 at 21:45 Comment(0)
B
1

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
Brandish answered 10/10, 2017 at 15:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.