Behave BDD integration for Django
- Web Browser Automation ready
- Database transactions per scenario
- Use Django's testing client
- Use unittest + Django assert library
- Use behave's command line arguments
- Use behave's configuration file
- Fixture loading
behave-django supports all current Django and Python versions. Specifically, our tests cover:
Django 1.4.20, 1.5.12, 1.6.11, 1.7.8, 1.8.2, and Python 2.6, 2.7, 3.3, 3.4.
Install using pip
$ pip install behave-django
Add behave_django
to your INSTALLED_APPS
INSTALLED_APPS += ('behave_django',)
Create the features directory in your project’s root directory. (Next to
manage.py
)
features/ steps/ your_steps.py environment.py your-feature.feature
Run python manage.py behave
$ python manage.py behave Creating test database for alias 'default'... Feature: Running tests # features/running-tests.feature:1 In order to prove that behave-django works As the Maintainer I want to test running behave against this features directory Scenario: The Test # features/running-tests.feature:6 Given this step exists # features/steps/running_tests.py:4 0.000s When I run "python manage.py behave" # features/steps/running_tests.py:9 0.000s Then I should see the behave tests run # features/steps/running_tests.py:14 0.000s 1 features passed, 0 failed, 0 skipped 1 scenarios passed, 0 failed, 0 skipped 3 steps passed, 0 failed, 0 skipped, 0 undefined Took.010s Destroying test database for alias 'default'...
Note
Starting with version 0.2.0
, you no longer need to insert the environment.before_scenario()
and environment.after_scenario()
functions in your environment.py
file. The hooks are now included via monkey patching.
- Documentation is available from pythonhosted.org/behave-django
- Read more about behave at pythonhosted.org/behave
Please, read the contributing guide.