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.0.tar.gz (880.8 kB view details)

Uploaded Source

Built Distribution

behave-1.3.0-py2.py3-none-any.whl (221.9 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for behave-1.3.0.tar.gz
Algorithm Hash digest
SHA256 b32ec1a1ed67f23adc007c1cb7ee31ac1c939638d30c8e3e27a00d9ddb063c09
MD5 89a5526e21168a44d17ecaac2caed3de
BLAKE2b-256 7619774284df603139d2dda55c9901c45c4c08c84847371cc1444b1c0a5f12b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for behave-1.3.0.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.0-py2.py3-none-any.whl.

File metadata

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

File hashes

Hashes for behave-1.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 657ee8c167af716e6ab7b817100bb427a2674440d431751af47af9ffd8a90b57
MD5 29c6dbb56d9e72ecbbf7188891b384ad
BLAKE2b-256 150ab8290a376ce7ae3b9b9477aecec8f0e04e958a0089a49f5b30642cb60012

See more details on using hashes here.

Provenance

The following attestation bundles were made for behave-1.3.0-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 Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page