# Welcome to behave!

behave is behaviour-driven development, Python style.

Behavior-driven development (or BDD) is an agile software development technique that encourages collaboration between developers, QA and non-technical or business participants in a software project. We have a page further describing this philosophy.

https://pypi.python.org/pypi/behave uses tests written in a natural language style, backed up by Python code.

Once you’ve installed behave, we recommend reading the

- tutorial first and then

- feature test setup,

- behave API and

- related software (things that you can combine with https://pypi.python.org/pypi/behave)

- finally: how to use and configure the https://pypi.python.org/pypi/behave tool.

There is also a comparison with the other tools available.

## Contents

- Installation
  - Using pip (or …)
  - Using a Source Distribution
  - Using the Github Repository
- Tutorial
  - Features
  - Feature Files
  - Python Step Implementations
  - Environmental Controls
  - Controlling Things With Tags
  - Works In Progress
  - Fixtures
  - Debug-on-Error (in Case of Step Failures)
- Behavior Driven Development
  - BDD practices
  - Outside–in
  - The Gherkin language
  - Programmer-domain examples and behavior
  - Using mocks
  - Acknowledgement
- Feature Testing Setup
  - Feature Testing Layout
  - Gherkin: Feature Testing Language
- Using behave
  - Command-Line Arguments
  - Configuration Files
- Behave API Reference
  - Step Functions
  - Environment File Functions
  - Fixtures
  - Runner Operation
  - Model Objects
  - Logging Capture
- Fixtures
  - Providing a Fixture
  - Using a Fixture
  - Fixture Cleanup Points
  - Fixture Setup/Cleanup Semantics
  - Ensure Fixture Cleanups with Fixture Setup Errors
  - Composite Fixtures
- Django Test Integration
  - Manual Integration
  - Strategies and Tooling
- Flask Test Integration
  - Integration Example
  - Strategies and Tooling
- Practical Tips on Testing
  - Seriously, Don’t Test the User Interface
  - Automation Libraries
- Comparison With Other Tools
  - Cucumber
  - Lettuce
  - Freshen
- New and Noteworthy
  - Noteworthy in Version 1.2.6
  - Noteworthy in Version 1.2.5
  - Noteworthy in Version 1.2.4
- More Information about Behave
  - Tutorials
  - Books
  - Presentation Videos
  - Tool-oriented Tutorials
  - Find more Information
- Appendix
  - Formatters and Reporters
  - Context Attributes
  - Predefined Data Types in `parse`
  - Regular Expressions
  - Testing Domains
  - Behave Ecosystem
  - Software that Enhances behave

See also

- behave.example: Behave Examples and Tutorials (HTML)

- Peter Parente: BDD and Behave (tutorial)

# Indices and tables

- Index

- Module Index

- Search Page