Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I run a specific Behat scenario

Tags:

php

behat

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" 
like image 768
JeremyKirkham Avatar asked Mar 24 '16 04:03

JeremyKirkham


People also ask

How behat works?

Behat is a tool that makes behavior driven development (BDD) possible. With BDD, you write human-readable stories that describe the behavior of your application. These stories can then be auto-tested against your application. And yes, it's as cool as it sounds!

What is a behat test?

Behat is a PHP testing framework which can be used to automate acceptance tests in a human readable language called Gherkin. Since it is based on Cucumber, it also helps teams to adopt and implement Behavioral Driven Development (BDD).


2 Answers

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

like image 62
Igor Lantushenko Avatar answered Oct 07 '22 21:10

Igor Lantushenko


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 
like image 41
leymannx Avatar answered Oct 07 '22 21:10

leymannx