Metadata-Version: 2.1
Name: pytest-bdd-html
Version: 0.1.11a0
Summary: pytest plugin to display BDD info in HTML test report
Author-email: slavos1 <slavos1@example.com>
License: MIT
Project-URL: Homepage, https://github.com/slavos1/pytest-bdd-html
Project-URL: Documentation, https://github.com/slavos1/pytest-bdd-html/blob/main/README.rst
Keywords: pytest,html,bdd,report
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENSE

pytest-bdd-html
===============

.. image:: https://img.shields.io/github/release/slavos1/pytest-bdd-html?include_prereleases=&sort=semver&color=blue
    :target: https://github.com/slavos1/pytest-bdd-html/releases/
    :alt: GitHub release   
.. .. image:: https://github.com/slavos1/pytest-bdd-html/workflows/gh/badge.svg
..   :target: https://github.com/slavos1/pytest-bdd-html/actions
..   :alt: CI
.. 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 */

