Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


Behat run configurations can be set in the same way as PHPUnit’s. Usual The usual testing workflow (running with run action, UI for running tests and displaying results) is supported.


2. Add a new configuration with  with  button and select Behat

3. Provide the path to the directory which contains test scenarios (/Users/user/PhpStormProjects/Behat/features in our case). Test scope can be defined as a Directory, File, Scenario or Defined in configuration file. There are many additional options which can be configured in this dialog (such as alternative Behat configuration file, test runner options, command line options, or actions to be performed before launch).


4. If you haven't configured the path to Behat directory or behat.phar file before, PhpStorm will offer you to do so with a the Fix button in the run configuration dialog. Provide the path to Behat and default configuration file (if needed).


Alternatively, you can use Behat via Remote Interpreter, . The configuration process is similar with the only difference that you should have remote PHP interpreter configured.


It works in the same way for context action actions inside *.feature file in the editor (creating run configuration or running all scenarios from file or single scenario from file):


From the test runner tab you can navigate to the source code of the test, sort or filter results of tests, and much more.


Resolve from step in Gherkin file to Context file

Hover step in Gherkin file with Press and hold Ctrl / Cmd hotkey pressed and get and hover over a step in Gherkin file: the relevant method from the Context file will be highlighted. Clicking Click on appeared the displayed link immediately navigates you to navigate to the declaration. You can also navigate to the method declaration in the Context file with Ctrl+B / Cmd-B with an when the editor caret is placed at the step in Gherkin file.

As soon as a navigation action is invoked, you are navigated to the very method in Context file (FeatureContext.php in our case):


Find Usages from Context file to usages in Gherkin files

From any Context file, you can find all the usages of the a method in all *.feature files. Just place a the caret at the method name and invoke press Alt-+F7 (or select Find Usages from the context menu action Find Usages). You will see all the usages of the desired method in project files:


Keyword and step completion

All the Any keywords and steps are completed with a the basic code completion action (Ctrl+Space) in *.feature files. All the steps are indexed from the current project and always up-to-date.


Generation for undefined steps

If any of the steps in your *.feature file are undefined, the PhpStorm will spot that in a moment highlighting step in question with detect this, and will immediately highlight the step as undefined step reference inspection result:

Press Alt+Enter (or click on the light bulb) to get a list of relevant quick-fixes, and then select the one named Create Step Definition. You will be immediately offered prompted to choose the step definition file from your project or create a new one.

In case of choosing already If you choose an existing step definition file, step definition will be immediately created there with a relevant PHPDoc:

In case If you would like to create a new file, this option should be selected from the list on the previous step:

In the Create New Step Definition File dialog will appear providing you an opportunity to set a , enter the file name, file type and file location:

As soon After as you are done with have set these options, a new step definition file will be created:

Make sure

Your input is welcome

If you have any bugs to report any bugs and/or feature requests to add related to Behat functionality to the, please do so in our Issue Tracker.


<a href="" class="twitter-share-button" data-text="Using Behat in PhpStorm" data-count="horizontal" data-via="phpstorm" data-hashtags="">Tweet</a><script charset="local" type="text/javascript" src=""></script>
<span id="fb-root"></span><script charset="local" type="text/javascript" src=""></script><fb:like href="" send="false" layout="button_count" width="150" show_faces="false" style="position:relative;margin-left:-20px;top:-5px;"></fb:like>
<script type="text/javascript" src=""></script>
<g:plusone size="medium"></g:plusone>