一般的なヘルプオプションを使って、ini スタイルの構成ファイルのコマンドラインオプションとその値のヘルプを確認できます:
py.test -h # オプションと構成ファイルの設定を表示
これはインストール済みのプラグインが登録したコマンドライン設定と構成ファイル設定も表示します。
py.test は、コマンドライン引数のディレクトリとその上位ディレクトリの、最初に一致する ini スタイルの構成ファイルを検索します。次の順番でファイル名を見ていきます:
pytest.ini
tox.ini
setup.cfg
最初の [pytest] のセクションを見つけたときに検索を中止します。複数の設定ファイルから設定値をマージするようなことはしません。サンプルを紹介します:
py.test path/to/testdir
次のように構成ファイルを含むディレクトリがあります:
path/to/testdir/pytest.ini
path/to/testdir/tox.ini
path/to/testdir/setup.cfg
path/to/pytest.ini
path/to/tox.ini
path/to/setup.cfg
... # ファイルシステムのルートまで上る
引数が py.test を実行するために提供されるものなら、カレントディレクトリがその検索の開始位置に使われます。
py.test を使うときに毎回一連のコマンドラインオプションを入力するのは飽き飽きしてきます。例えば、毎回スキップしたり xfail したテストの詳細情報を見たいなら、進捗状況を簡潔な “ドット” 出力にするのと同様に、構成ファイル内にその設定を記述できます:
# pytest.ini の内容
# (または tox.ini か setup.cfg)
[pytest]
addopts = -rsxX -q
設定後に実行すると py.test は指定したオプションを追加します。
テストの実行に必要な pytest の最小バージョンを指定します
minversion = 2.1 # pytest-2.0 で実行すると失敗する
ユーザーが指定するようにコマンドライン引数をセットするのに特化した OPTS を追加します。次のような ini ファイルがある場合:
[pytest]
addopts = --maxfail=2 -rf # 2回失敗したら終了して、その内容をレポートする
py.test test_hello.py は、実際には次の内容と同じです:
py.test --maxfail=2 -rf test_hello.py
デフォルトでは何のオプションを追加しません。
再帰的に探索しないテストディレクトリのディレクトリ名のパターンを設定します。それぞれ (fnmatch スタイル) のパターンがそのディレクトリ内を再帰的に調べるかを決めるのにディレクトリ名に適用されます。パターンマッチング文字は次の通りです:
* 全てに一致する
? 任意の1文字に一致する
[seq] seq のうち任意の1文字に一致する
[!seq] seq のどの文字にも一致しない
デフォルトパターンは .* _* CVS {args} となっており、 norecursedir を設定することで置き換えられます。特定のディレクトリを探索しない方法のサンプルは次の通りです:
# setup.cfg の内容
[pytest]
norecursedirs = .svn _build tmp*
これは典型的な subversion と sphinx の build ディレクトリと tmp という接頭辞をもつディレクトリを再帰探索しない設定です。
python ファイルをテストモジュールとみなす、1つかそれ以上の Glob スタイルのファイルパターンです。
テストクラスをテストモジュールとみなす、1つかそれ以上の接頭辞です。