Metadata-Version: 2.2
Name: pytest-testdox
Version: 1.2.1
Summary: A testdox format reporter for pytest
Home-page: https://github.com/renanivo/pytest-testdox
Author: Renan Ivo
Author-email: renanivom@gmail.com
Keywords: pytest testdox test report bdd
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Testing
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Requires-Dist: pytest>=3.7.0
Requires-Dist: six>=1.11.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: requires-dist
Dynamic: summary

pytest-testdox
==============

.. image:: https://img.shields.io/pypi/v/pytest-testdox.svg?color=brightgreen
    :target: https://pypi.org/project/pytest-testdox/
    :alt: PyPI

.. image:: https://travis-ci.org/renanivo/pytest-testdox.svg?branch=master
    :target: https://travis-ci.org/renanivo/pytest-testdox

.. image:: https://codecov.io/gh/renanivo/pytest-testdox/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/renanivo/pytest-testdox

A `TestDox format`_ reporter for pytest

.. _TestDox format: https://en.wikipedia.org/wiki/TestDox

.. image:: http://i.imgur.com/rJRL4x9.png

Install
-------

::

    pip install pytest-testdox


Usage
-----

Add the parameter `--testdox` when running `pytest`. Ex:

::

    pytest --testdox your-tests/

Tip: If you don't want to type ``--testdox`` every time you run ``pytest``, add it
to `addopts <https://docs.pytest.org/en/latest/customize.html#confval-addopts>`_
in your `ini file <https://docs.pytest.org/en/latest/customize.html#initialization-determining-rootdir-and-inifile>`_. Ex:

.. code-block:: ini

    # content of pytest.ini
    # (or tox.ini or setup.cfg)
    [pytest]
    addopts = --testdox

When using ``--testdox``, the plugin will disable itself when not running on a
terminal. If you want the testdox report no matter what, use the parameter
``--force-testdox`` instead.


Markers
-------

@pytest.mark.describe
---------------------

Override the class name in the testdox report. Example

.. code-block:: python

    # test_demo.py
    @pytest.mark.describe('create_file')
    class TestCreateFile():

        def test_creates_a_file_in_the_so(self):
            pass


Will produce the output:

::

    test_demo.py

    create_file
     [x] creates a file in the so


@pytest.mark.it
---------------

Override the test title in the testdox report. Example:

.. code-block:: python

    # test_demo.py
    class TestCreateFile():

        @pytest.mark.it('Creates a local file in the SO')
        def test_creates_a_file_in_the_so(self):
            pass


Will produce the output:

::

    test_demo.py

    Create File
     [x] Creates a local file in the SO


Configuration file options
--------------------------

testdox\_format
~~~~~~~~~~~~~~~

Specifies TestDox report format, ``plaintext`` or ``utf8`` (default:
``utf8``). Ex:

.. code:: ini

    # content of pytest.ini
    # (or tox.ini or setup.cfg)
    [pytest]
    testdox_format = plaintext

::

    $ pytest test_demo.py
    ============================= test session starts ==============================
    platform darwin -- Python 3.5.0, pytest-3.0.7, py-1.4.33, pluggy-0.4.0
    rootdir: /private/tmp/demo, inifile: pytest.ini
    plugins: testdox-dev
    collected 2 items

    test_demo.py
    Pytest Testdox
     [x] prints a BDD style output to your tests
     [x] lets you focus on the behavior
