Previous topic

nose 向けに書かれたテストの実行

Next topic

プラグインと conftest ファイルの連携

モジュールやテストファイルの doctest

デフォルトで 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')
>>> ...