behave.example icon indicating copy to clipboard operation
behave.example copied to clipboard

Examples and Tutorials for "behave" to simplify use for new developers.

behave.example: Examples and Tutorials

:Date: 2020-11-04 :Category: BDD, testing :License: BSD

behave_ is a BDD test framework and cucumber-clone for Python. This project provides tutorials and examples how to use behave. It should extends the excellent documentation of behave.

SEE ALSO:

  • https://github.com/behave/behave.example
  • behave: https://pypi.org/project/behave/
  • cucumber: https://docs.cucumber.io/

DOCUMENTATION:

  • https://behave.github.io/behave.example (latest version)

REPOSITORIES:

  • https://github.com/behave/behave
  • https://github.com/jenisys/parse_type

.. _behave: https://github.com/behave/behave .. _parse_type: https://github.com/jenisys/parse_type .. _invoke: https://www.pyinvoke.org .. _sphinx-contrib: https://github.com/sphinx-contrib .. _sphinxcontrib-ansi: https://github.com/jenisys/sphinxcontrib-ansi .. _sphinxcontrib-programoutput: https://github.com/NextThought/sphinxcontrib-programoutput

INSTALL and BOOTSTRAP

The project provides tutorials and examples. Therefore, it should not be installed. To prepare the local installation, use the following command to install all prerequisites::

# -- STEP 1: Setup and activate a virtual python environment.
$ virtualenv --python python3 .venv
$ source .venv/bin/activate

# -- HINT ON WINDOWS:
# call .venv/Scripts/activate

# -- STEP 2: Install all required python packages with "pip".
$ pip install -r py.requirements/all.txt

Some extension to behave_ are provided in the lib/python/ subdirectory. They are used when you use bin/behave to run behave_.

HOWTO

Cleanup local workspace::

invoke cleanup
invoke cleanup.all

Run behave_ tests::

invoke test

or::

bin/behave features/
bin/behave datatype.features/
bin/behave step_matcher.features/

Build Sphinx-based documentation with tutorials::

invoke docs

If invoke_ is not installed, use the following canned script instead::

bin/invoke command ...

SPECIAL CONFIGURATION

  • The behave_ PrettyFormatter is replaced with pretty2.SimplePrettyFormatter.

    This formatter implementation avoids cursor-ups while processing steps. ANSI escape cursor-up sequences do not work with sphinxcontrib-ansi_ when the sphinx-based documentation is generated (experimental feature for colorized behave output support).

  • sphinxcontrib-ansi_ does not process the following ANSI escape sequences correctly (set-color, set-bold)::

    CSI{color_code}mCSI1m

    The color is reset in HTML output when set-bold is detected. The following ANSI escape sequence should be used instead::

    CSI{color_code};1m

    The behave runner, that is used here, patches the original functionality to use the second solution ("use_ansi_escape_colorbold_composites()").

  • The coloring schema in behave_ is adapted by setting the environment variable ("grey" is replaced with "white")::

    GHERKIN_COLORS="executing=white:comments=white"

  • To disable "ANSI coloring" support for Sphinx, set "ansiterm_supported = False" in "docs/conf.py". Note that this is not necessary on Windows.