behave


Namebehave JSON
Version 1.3.2 PyPI version JSON
download
home_pageNone
Summarybehave is behaviour-driven development, Python style
upload_time2025-08-29 21:30:47
maintainerJens Engel, Peter Bittner
docs_urlNone
authorBenno Rice, Richard Jones
requires_python!=3.0.*,!=3.1.*,!=3.2.*,>=2.7
licenseNone
keywords bdd behavior-driven-development bdd-framework behave gherkin cucumber-like
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            ======
behave
======

.. |badge.latest_version| image:: https://img.shields.io/pypi/v/behave.svg
    :target: https://pypi.python.org/pypi/behave
    :alt: Latest Version

.. |badge.license| image:: https://img.shields.io/pypi/l/behave.svg
    :target: https://pypi.python.org/pypi/behave/
    :alt: License

.. |badge.CI_status| image:: https://github.com/behave/behave/actions/workflows/test.yml/badge.svg
    :target: https://github.com/behave/behave/actions/workflows/test.yml
    :alt: CI Build Status

.. |badge.docs_status| image:: https://readthedocs.org/projects/behave/badge/?version=latest
    :target: https://behave.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. |badge.discussions| image:: https://img.shields.io/badge/chat-github_discussions-darkgreen
   :target: https://github.com/behave/behave/discussions
   :alt: Discussions at https://github.com/behave/behave/discussions

.. |badge.gitter| image:: https://badges.gitter.im/join_chat.svg
   :target: https://app.gitter.im/#/room/#behave_behave:gitter.im
   :alt: Chat at https://gitter.im/behave/behave

.. |badge.gurubase| image:: https://img.shields.io/badge/Gurubase-Ask%20behave%20Guru-006BFF
   :target: https://gurubase.io/g/behave
   :alt: Ask behave Guru at https://gurubase.io/g/behave


.. |logo| image:: https://raw.github.com/behave/behave/master/docs/_static/behave_logo1.png

|badge.latest_version| |badge.license| |badge.CI_status| |badge.docs_status| |badge.discussions| |badge.gitter| |badge.gurubase|

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:

.. code-block:: gherkin

    # -- 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:

.. code-block:: python

    # -- 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:

.. code-block:: console

    $ 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.


.. _`Install *behave*.`: https://behave.readthedocs.io/en/stable/install/
.. _`tutorial`: https://behave.readthedocs.io/en/stable/tutorial/
.. _`feature testing language`: https://behave.readthedocs.io/en/stable/gherkin/
.. _`api`: https://behave.readthedocs.io/en/stable/api/


More Information
-------------------------------------------------------------------------------

* `behave documentation`_: `latest edition`_, `stable edition`_, `PDF`_
* `behave.example`_: Behave Examples and Tutorials (docs, executable examples).
* `changelog`_ (latest changes)


.. _behave documentation: https://behave.readthedocs.io/
.. _changelog:      https://github.com/behave/behave/blob/main/CHANGES.rst
.. _behave.example: https://github.com/behave/behave.example

.. _`latest edition`: https://behave.readthedocs.io/en/latest/
.. _`stable edition`: https://behave.readthedocs.io/en/stable/
.. _PDF:              https://behave.readthedocs.io/_/downloads/en/latest/pdf/


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "behave",
    "maintainer": "Jens Engel, Peter Bittner",
    "docs_url": null,
    "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7",
    "maintainer_email": "Jens Engel <jenisys@noreply.github.com>, Peter Bittner <bittner@noreply.github.com>",
    "keywords": "BDD, behavior-driven-development, bdd-framework, behave, gherkin, cucumber-like",
    "author": "Benno Rice, Richard Jones",
    "author_email": "Jens Engel <jenisys@noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/1d/78/80eb78386127e22470d2fb831b9105d8decce756851b8970a48dc33a033f/behave-1.3.2.tar.gz",
    "platform": "any",
    "description": "======\nbehave\n======\n\n.. |badge.latest_version| image:: https://img.shields.io/pypi/v/behave.svg\n    :target: https://pypi.python.org/pypi/behave\n    :alt: Latest Version\n\n.. |badge.license| image:: https://img.shields.io/pypi/l/behave.svg\n    :target: https://pypi.python.org/pypi/behave/\n    :alt: License\n\n.. |badge.CI_status| image:: https://github.com/behave/behave/actions/workflows/test.yml/badge.svg\n    :target: https://github.com/behave/behave/actions/workflows/test.yml\n    :alt: CI Build Status\n\n.. |badge.docs_status| image:: https://readthedocs.org/projects/behave/badge/?version=latest\n    :target: https://behave.readthedocs.io/en/latest/?badge=latest\n    :alt: Documentation Status\n\n.. |badge.discussions| image:: https://img.shields.io/badge/chat-github_discussions-darkgreen\n   :target: https://github.com/behave/behave/discussions\n   :alt: Discussions at https://github.com/behave/behave/discussions\n\n.. |badge.gitter| image:: https://badges.gitter.im/join_chat.svg\n   :target: https://app.gitter.im/#/room/#behave_behave:gitter.im\n   :alt: Chat at https://gitter.im/behave/behave\n\n.. |badge.gurubase| image:: https://img.shields.io/badge/Gurubase-Ask%20behave%20Guru-006BFF\n   :target: https://gurubase.io/g/behave\n   :alt: Ask behave Guru at https://gurubase.io/g/behave\n\n\n.. |logo| image:: https://raw.github.com/behave/behave/master/docs/_static/behave_logo1.png\n\n|badge.latest_version| |badge.license| |badge.CI_status| |badge.docs_status| |badge.discussions| |badge.gitter| |badge.gurubase|\n\nbehave is behavior-driven development, Python style.\n\n|logo|\n\nBehavior-driven development (or BDD) is an agile software development\ntechnique that encourages collaboration between developers, QA and\nnon-technical or business participants in a software project.\n\n*behave* uses tests written in a natural language style, backed up by Python\ncode.\n\nFirst, `install *behave*.`_\n\n\nNow make a directory called \"features/\".\nIn that directory create a file called \"example.feature\" containing:\n\n.. code-block:: gherkin\n\n    # -- FILE: features/example.feature\n    Feature: Showing off behave\n\n      Scenario: Run a simple test\n        Given we have behave installed\n         When we implement 5 tests\n         Then behave will test them for us!\n\nMake a new directory called \"features/steps/\".\nIn that directory create a file called \"example_steps.py\" containing:\n\n.. code-block:: python\n\n    # -- FILE: features/steps/example_steps.py\n    from behave import given, when, then, step\n\n    @given('we have behave installed')\n    def step_impl(context):\n        pass\n\n    @when('we implement {number:d} tests')\n    def step_impl(context, number):  # -- NOTE: number is converted into integer\n        assert number > 1 or number == 0\n        context.tests_count = number\n\n    @then('behave will test them for us!')\n    def step_impl(context):\n        assert context.failed is False\n        assert context.tests_count >= 0\n\nRun behave:\n\n.. code-block:: console\n\n    $ behave\n    Feature: Showing off behave # features/example.feature:2\n\n      Scenario: Run a simple test          # features/example.feature:4\n        Given we have behave installed     # features/steps/example_steps.py:4\n        When we implement 5 tests          # features/steps/example_steps.py:8\n        Then behave will test them for us! # features/steps/example_steps.py:13\n\n    1 feature passed, 0 failed, 0 skipped\n    1 scenario passed, 0 failed, 0 skipped\n    3 steps passed, 0 failed, 0 skipped, 0 undefined\n\nNow, continue reading to learn how to get the most out of *behave*. To get started,\nwe recommend the `tutorial`_ and then the `feature testing language`_ and\n`api`_ references.\n\n\n.. _`Install *behave*.`: https://behave.readthedocs.io/en/stable/install/\n.. _`tutorial`: https://behave.readthedocs.io/en/stable/tutorial/\n.. _`feature testing language`: https://behave.readthedocs.io/en/stable/gherkin/\n.. _`api`: https://behave.readthedocs.io/en/stable/api/\n\n\nMore Information\n-------------------------------------------------------------------------------\n\n* `behave documentation`_: `latest edition`_, `stable edition`_, `PDF`_\n* `behave.example`_: Behave Examples and Tutorials (docs, executable examples).\n* `changelog`_ (latest changes)\n\n\n.. _behave documentation: https://behave.readthedocs.io/\n.. _changelog:      https://github.com/behave/behave/blob/main/CHANGES.rst\n.. _behave.example: https://github.com/behave/behave.example\n\n.. _`latest edition`: https://behave.readthedocs.io/en/latest/\n.. _`stable edition`: https://behave.readthedocs.io/en/stable/\n.. _PDF:              https://behave.readthedocs.io/_/downloads/en/latest/pdf/\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "behave is behaviour-driven development, Python style",
    "version": "1.3.2",
    "project_urls": {
        "Changelog": "https://github.com/behave/behave/blob/main/CHANGES.rst",
        "Documentation": "https://behave.readthedocs.io/en/latest/",
        "Homepage": "https://github.com/behave/behave",
        "Issues": "https://github.com/behave/behave/issues/",
        "Repository": "https://github.com/behave/behave"
    },
    "split_keywords": [
        "bdd",
        " behavior-driven-development",
        " bdd-framework",
        " behave",
        " gherkin",
        " cucumber-like"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0d8b35fc1456c1056fcf0a1378eda289775e1ff8842d7ce5ff372954aecbca48",
                "md5": "f00f1d1762e518cf7e0cab0c5a201b8e",
                "sha256": "c602d34a7050a19d2281ab86bbc64086308fd187aac94bc1cbc1eca255225e7a"
            },
            "downloads": -1,
            "filename": "behave-1.3.2-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f00f1d1762e518cf7e0cab0c5a201b8e",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7",
            "size": 223205,
            "upload_time": "2025-08-29T21:30:45",
            "upload_time_iso_8601": "2025-08-29T21:30:45.748179Z",
            "url": "https://files.pythonhosted.org/packages/0d/8b/35fc1456c1056fcf0a1378eda289775e1ff8842d7ce5ff372954aecbca48/behave-1.3.2-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1d7880eb78386127e22470d2fb831b9105d8decce756851b8970a48dc33a033f",
                "md5": "6d4b9d617a2baa41c5452284775ec6e0",
                "sha256": "a1ef97c9e05ca4c19e60302d07ee1092480d2632c2e96abb30bb69a08b1681fb"
            },
            "downloads": -1,
            "filename": "behave-1.3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "6d4b9d617a2baa41c5452284775ec6e0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7",
            "size": 889462,
            "upload_time": "2025-08-29T21:30:47",
            "upload_time_iso_8601": "2025-08-29T21:30:47.720947Z",
            "url": "https://files.pythonhosted.org/packages/1d/78/80eb78386127e22470d2fb831b9105d8decce756851b8970a48dc33a033f/behave-1.3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-29 21:30:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "behave",
    "github_project": "behave",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "behave"
}
        
Elapsed time: 1.04707s