Skip to content


This documentaton refers to settings provided by the WordHat extension.

Consult the Behat website for an overview of general settings, or the Mink website for settings relating to controlling a web browser.


These are the options provided by the WordHat extension:

  default_driver: wpcli
  path: ~

  # User settings.
        - administrator
      username: admin
      password: admin

  # WordPress settings.
  site_url: ~
    author_archive: author/%s/
    restore_after_test: false
    backup_path: ~

  # Driver settings.
    alias: dev
    binary: wp
Option Default value Description
default_driver “wpcli” Optional.
The WordPress driver to use (“wpcli”, “wpphp”).
path null Optional.
Path to WordPress files.
users.* see example Optional.
roles property can accept multiple values.
site_url null Optional.
If your WordPress is installed in a subdirectory, set this to the site_url() value. Defaults to mink.base_url.
permalinks.* see example Optional.
Permalink pattern for the specific kind of link.
%s is replaced with an ID/object name, as appropriate.
database.restore_after_test false Optional.
If true, WordHat will restore your site’s database to its initial state between feature tests.
database.backup_path see example Optional.
If restore_after_test is true, and the value is a file path, WordHat will use that as the back up to restore the database from.
If the path is a directory, then before any tests are run, WordHat will generate a database back up and store it here.
If the path has not been set, WordHat will choose its own temporary folder.
wpcli.alias null Optional.
WP-CLI alias (preferred over wpcli.path).
wpcli.binary wp Optional.
Path and name of WP-CLI binary.
Also supports shell commands (e.g. cd ~/bin && ./wp).

Per-environment settings

Some of the settings in behat.yml are environment specific. For example, the base_url may be on your local development environment, while on a test server it might be

If you intend to run your tests on different environments, these sorts of settings should not be added to your behat.yml. Instead, they should be exported in an environment variable.

Before running tests, Behat will check the BEHAT_PARAMS environment variable and add these settings to the ones that are present in behat.yml (settings from this file takes precedence). This variable should contain a JSON object with your settings.

Example JSON object:

  "extensions": {
    "Behat\\MinkExtension": {
      "base_url": ""

To export this to the BEHAT_PARAMS environment variable on a Linux or MacOS system, squash the JSON object into a single line and surround with single quotes:

export BEHAT_PARAMS='{"extensions":{"Behat\\MinkExtension":{"base_url":""}}}'