...そしてポニー!いいえ、真剣に。「うまくいく」テストを整理する方法を探しています。ほとんどのことは機能しますが、すべての要素がうまく適合するとは限りません。だからここに私が欲しいものがあります:
- テストを自動的に検出する。これには、doctest が含まれます。doctests の合計が単一のテストとして表示されてはならないことに注意してください。(つまり、 py.test --doctest-modules が行うことではありません)
- テストを並行して実行できること。(xdist の py.test -n のようなもの)
- カバレッジ レポートの生成。
- 動作させる
python setup.py test
だけです。
私の現在のアプローチには、tests
ディレクトリとload_tests プロトコルが含まれます。含まれるすべてのファイルは、のように名前が付けられますtest_*.py
。次の内容python -m unittest discover
のファイルを作成すると、これでうまくいきます。test_doctests.py
import doctest
import mymodule1, mymodule2
def load_tests(loader, tests, ignore):
tests.addTests(doctest.DocTestSuite(mymodule1))
tests.addTests(doctest.DocTestSuite(mymodule2))
return tests
このアプローチには、 setuptools と supply を使用できるという利点もありますsetup(test_suite="unittest2.collector")
。
ただし、このアプローチにはいくつかの問題があります。
- coverage.py は、スクリプトの実行を想定しています。したがって、ここでは unittest2 ディスカバリーを使用できません。
- py.test は load_tests 関数を実行しないため、doctests が見つからず、
--doctest-modules
オプションはがらくたです。 - nodestests は
load_tests
関数を実行しますが、パラメーターは提供しません。これは、鼻の側面が完全に壊れているように見えます。
これよりもうまく機能させるにはどうすればよいですか、または上記の問題のいくつかを修正するにはどうすればよいですか?