slavos1 / pytest-bdd-html

pytest plugin to display BDD info in HTML test report
MIT License
3 stars 0 forks source link
bdd html plugin pytest pytest-plugin python

pytest-bdd-html

.. image:: https://img.shields.io/badge/dynamic/xml?url=https://pypi.org/rss/project/pytest-bdd-html/releases.xml&label=pypi&query=//item[1]/title&color=blue :target: https://pypi.org/project/pytest-bdd-html/#history :alt: PyPI release .. image:: https://img.shields.io/github/issues/slavos1/pytest-bdd-html :target: https://github.com/slavos1/pytest-bdd-html/issues :alt: Issues .. image:: https://img.shields.io/badge/license-MIT-blue :target: https://github.com/slavos1/pytest-bdd-html/blob/main/LICENSE :alt: License

A pytest plugin to display BDD <https://en.wikipedia.org/wiki/Behavior-driven_development> info in the pytest-html <https://pypi.org/project/pytest-html/>-generated HTML test report.

Apart from pytest-html, it plugs into pytest-bdd <https://pypi.org/project/pytest-bdd/>_ plugin's hooks.

Usage

To use the plugin, just install it:

.. code:: shell

# source .venv/bin/activate
pip install pytest-bdd-html
pytest -vv ...

If you use tox <https://pypi.org/project/tox/>_, list the plugin as a dependency:

.. code:: ini

; tox.ini
[testenv]
deps = ...
    pytest-bdd-html

commands = pytest -vv ...

There will be a new 3rd column with label "Description" in the test report specified by --html=... command line option of pytest-html.

Command line options

Available command line options are as follows.

--bdd-html-css=PATH Specifies a path to a custom CSS file for styling of the Description column. pytest_bdd_html/resources/style.css is used by default if PATH does not exist or is not specified. See CSS classes_ for how the column cells are structured.

CSS classes

For each test case (one row in the pytest-html-generated HTML report), the Description column's cell has one of the following structures, differing for BDD and non-BDD tests (.XXX denotes a HTML element with CSS class="XXX").

Structure of cell for BDD test


::

  .col-description
    .col-description-bdd-doc
      /* Feature */
      div
        h3
        .text
           div /* feature name */
           div /* feature description; optional */

      /* Scenario */
      div
        h3
        .text

      /* Steps */
      div
        h3
        .steps
          .step /* one or more steps */
            .step-name
            .step-message

Structure of cell for non-BDD test with functional comment

::

.col-description .col-description-func-doc

Structure of cell for non-BDD test without functional comment



::

  .col-description
    .col-description-no-doc /* an empty div */

Version update
--------------

::

  bumpver test -p 0.1.13a0 "MAJOR.MINOR.PATCH[PYTAGNUM]"
  bumpver update -n -d -p
  bumpver update -n -p