web-dev-qa-db-ja.com

pytestは変更されたファイルのみを実行しますか?

私はPythonにかなり慣れておらず、ツールセットを学ぼうとしています。

コーディング中にテストを監視するためにpy.test -fを取得する方法を理解しました。私が理解できなかったことの1つは、RubyのGuardライブラリのように機能するよりスマートなウォッチャーを実行する方法があるかどうかです。

ガード+ミニテストを使用すると、my_class.rbのようなファイルを保存するとmy_class_test.rbが実行され、CLIでenterを押すとすべてのテストが実行されます。

これまでのpytestでは、最後に触れたファイルに対応するテストファイルのみを実行する方法を見つけることができなかったため、現在のファイルが通過するまでテストスイート全体が実行されるのを待つ必要がありません。

Pythonistasはそれについてどのように取り組みますか?

ありがとう!

21
Andrew

1つの可能性は、 pytest-testmonpytest-watch と一緒に使用することです。

coverage.py を使用して、どのテストがどのコード行に接触するかを追跡し、コード行を変更するとすぐに、その行を何らかの方法で実行するすべてのテストを再実行します。

17
The Compiler

pytest-xdist という機能もあります。

--looponfail:サブプロセスでテストを繰り返し実行します。実行するたびに、py.testはプロジェクト内のファイルが変更されるまで待機してから、以前に失敗したテストを再実行します。これは、すべてのテストに合格するまで繰り返され、その後、再びフルランが実行されます。

3
einSelbst