デフォルトで test*.txt のパターンに一致する全てのファイルは、Python 標準の doctest モジュールで実行されます。次のようにコマンドラインでこのパターンを変更できます:
py.test --doctest-glob='*.rst'
Python モジュール (通常 python テストモジュールを含む) の docstring からも doctest を実行できます:
py.test --doctest-modules
次のように pytest.ini にその設定を追加することで、自分のプロジェクトでそういった変更を永続化できます:
# pytest.ini の内容
[pytest]
addopts = --doctest-modules
次のようなテキストファイルが存在して:
# example.rst の内容
hello this is a doctest
>>> x = 3
>>> x
3
他にも次のようなファイルも存在するとします:
# mymodule.py の内容
def something():
""" a doctest in a docstring
>>> something()
42
"""
return 42
コマンドラインオプションを指定せず py.test を実行するだけです:
$ py.test
=========================== test session starts ============================
platform linux2 -- Python 2.7.1 -- pytest-2.2.4
collecting ... collected 1 items
mymodule.py .
========================= 1 passed in 0.02 seconds =========================
それは getfixture ヘルパーを使ってフィクスチャを使用することが可能である:
# content of example.rst
>>> tmp = getfixture('tmpdir')
>>> ...