2010-10-11 05:45:45 +08:00
|
|
|
|
|
|
|
collect and run doctests from 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 conftest.py file like this::
|
|
|
|
|
|
|
|
# content of conftest.py
|
|
|
|
option_doctestmodules = True
|
|
|
|
option_doctestglob = "*.rst"
|
|
|
|
|
2010-10-11 16:07:14 +08:00
|
|
|
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.5 -- pytest-2.0.0dev0
|
2010-10-11 19:38:16 +08:00
|
|
|
test path 1: /tmp/doc-exec-224
|
2010-10-11 16:07:14 +08:00
|
|
|
|
|
|
|
conftest.py .
|
|
|
|
example.rst .
|
|
|
|
mymodule.py .
|
|
|
|
|
|
|
|
=========================== 3 passed in 0.01 seconds ===========================
|