quicklinks

home contents
install changelog
examples customize
issues[bb] contact

Previous topic

Running test written for nose

Next topic

Working with plugins and conftest files

doctest integration for modules and test filesΒΆ

By default all files matching the test*.txt pattern will be run through the python standard doctest module. You can change the pattern by issuing:

py.test --doctest-glob='*.rst'

on the command line. You can also trigger running of doctests from docstrings in all python modules (including regular python test modules):

py.test --doctest-modules

You can make these changes permanent in your project by putting them into a pytest.ini file like this:

# content of pytest.ini
[pytest]
addopts = --doctest-modules

If you then have a text file like this:

# content of example.rst

hello this is a doctest
>>> x = 3
>>> x
3

and another like this:

# content of mymodule.py
def something():
    """ a doctest in a docstring
    >>> something()
    42
    """
    return 42

then you can just invoke py.test without command line options:

$ py.test
=========================== test session starts ============================
platform linux2 -- Python 2.6.6 -- pytest-2.0.3
collecting ... collected 1 items

mymodule.py .

========================= 1 passed in 0.40 seconds =========================