Behat Documentation

Introduction

Behaviour Driven Development

Why use Behat?

Features

Example

Support / Questions

License

Quick Start

Example

Installation

Method #2 - PHAR (an easy one)

Development

Executing Behat

Defining Steps

Automating Steps

Implementing the Feature

What’s next?

User Guide

About Gherkin Language

Gherkin Syntax

Gherkin in Many Languages

Features and Scenarios

Features

Scenarios

Initializing a new Behat Project

Suite Initialisation

Creating Features

Writing Scenarios

Steps

Givens
Whens
Thens
And & But

Backgrounds

Scenario Outlines

Tables

Multiline Arguments

Pystrings

Feature contexts

Hooking into the Test Process

Behat Hook System
Hooks
Suite Hooks
Tagged hooks
Scenario hooks
Feature hooks
Step hooks
Using Scopes

Defining Step Definitions

Creating Your First Step Definition
Definition Snippets
Step Execution Result Types
Successful Steps
Undefined Steps
Pending Steps
Failed Steps
Skipped Steps
Ambiguous Steps
Redundant Step Definitions
Step Argument Transformations
Table Transformation
Arguments
Definition Keywords

Context Class Requirements

Context Lifetime

Multiple Contexts

Context Parameters

Context Traits

Command Line Tool

Identifying Tests

By Profile
By Suite
By Tags
By Path
By Name
By Role
By Language

Formatting Behat Output

Define Formatter
Specify Output
Format Settings

Development Support

Append Snippets
Dry Running
Stop on Failure
Re-run

Informative Output

Verbose
Help
Version
Config Reference
Output Story Syntax

Displaying Colours

Strict

Specifying Configuration File

Configuration

Feature, Suite and Scenario Configuration

Suite Paths
Suite Filters
Suites
Extensions
Suite Contexts

Profiles

Importing

Custom Autoloading

Formatters

Extending Behat

Developing a Custom Extension

Developing a Custom Formatter

Cookbooks

Configuring Behat for Testing Selenium

Integrating Symfony2 with Behat

Developing Web Applications with Behat and Mink

Migrating from Behat 2.x to Behat 3.x

Using Spin Functions for Slow Tests

Using the Symfony2 Profiler with Behat and Symfony2 Extension

Intercepting the Redirection with Behat and Mink

Gathering Contexts when using Multiple Contexts

Multilingual Support in your Features

Useful Resources

Integrating Behat with PHPStorm

Behat vs Cucumber

Gherkin API

Behat API

Behat Cheat Sheet