Skip to main content

behave is behaviour-driven development, Python style

Project description

Latest Version License CI Build Status Documentation Status Discussions at https://github.com/behave/behave/discussions Chat at https://gitter.im/behave/behave Ask behave Guru at https://gurubase.io/g/behave

behave is behavior-driven development, Python style.

logo

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.

behave uses tests written in a natural language style, backed up by Python code.

First, install *behave*.

Now make a directory called “features/”. In that directory create a file called “example.feature” containing:

# -- FILE: features/example.feature
Feature: Showing off behave

  Scenario: Run a simple test
    Given we have behave installed
     When we implement 5 tests
     Then behave will test them for us!

Make a new directory called “features/steps/”. In that directory create a file called “example_steps.py” containing:

# -- FILE: features/steps/example_steps.py
from behave import given, when, then, step

@given('we have behave installed')
def step_impl(context):
    pass

@when('we implement {number:d} tests')
def step_impl(context, number):  # -- NOTE: number is converted into integer
    assert number > 1 or number == 0
    context.tests_count = number

@then('behave will test them for us!')
def step_impl(context):
    assert context.failed is False
    assert context.tests_count >= 0

Run behave:

$ behave
Feature: Showing off behave # features/example.feature:2

  Scenario: Run a simple test          # features/example.feature:4
    Given we have behave installed     # features/steps/example_steps.py:4
    When we implement 5 tests          # features/steps/example_steps.py:8
    Then behave will test them for us! # features/steps/example_steps.py:13

1 feature passed, 0 failed, 0 skipped
1 scenario passed, 0 failed, 0 skipped
3 steps passed, 0 failed, 0 skipped, 0 undefined

Now, continue reading to learn how to get the most out of behave. To get started, we recommend the tutorial and then the feature testing language and api references.

More Information

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

behave-1.3.3.tar.gz (892.6 kB view details)

Uploaded Source

Built Distribution

behave-1.3.3-py2.py3-none-any.whl (223.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file behave-1.3.3.tar.gz.

File metadata

  • Download URL: behave-1.3.3.tar.gz
  • Upload date:
  • Size: 892.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for behave-1.3.3.tar.gz
Algorithm Hash digest
SHA256 2b8f4b64ed2ea756a5a2a73e23defc1c4631e9e724c499e46661778453ebaf51
MD5 b34d84ac11468e05584056fbdfe5bb85
BLAKE2b-256 6251f37442fe648b3e35ecf69bee803fa6db3f74c5b46d6c882d0bc5654185a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for behave-1.3.3.tar.gz:

Publisher: release-to-pypi.yml on behave/behave

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file behave-1.3.3-py2.py3-none-any.whl.

File metadata

  • Download URL: behave-1.3.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 223.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for behave-1.3.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 89bdb62af8fb9f147ce245736a5de69f025e5edfb66f1fbe16c5007493f842c0
MD5 5e64e45e2c05a5de453faff2b8c49c87
BLAKE2b-256 637106f74ffed6d74525c5cd6677c97bd2df0b7649e47a249cf6a0c2038083b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for behave-1.3.3-py2.py3-none-any.whl:

Publisher: release-to-pypi.yml on behave/behave

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page