0

Django プロジェクトのテストを切り替えて、Pytest と pytest-django を使用することを検討しています。私が遭遇した問題は、テストの実行を途中できれいに停止できなくなったことです。

デフォルトの Django テスト ランナーは、これを適切にサポートしています。

テストの実行中に Ctrl-C を押すと、テスト ランナーは現在実行中のテストが完了するのを待ってから正常に終了します。正常な終了時に、テスト ランナーはテストの失敗の詳細を出力し、実行されたテストの数と発生したエラーと失敗の数を報告し、通常どおりテスト データベースを破棄します。したがって、 --failfast オプションを渡すのを忘れた場合、Ctrl-C を押すと非常に便利です。一部のテストが予期せず失敗し、完全なテストの実行が完了するのを待たずに失敗の詳細を取得したい場合に注意してください。

現在実行中のテストが終了するのを待ちたくない場合は、Ctrl-C をもう一度押すと、テストの実行がすぐに停止しますが、正常に停止しません。中断前に実行されたテストの詳細は報告されず、実行によって作成されたテスト データベースは破棄されません。

Pytest または pytest-django でこれに対するサポートはありますか? 掘り下げてみたところ、 を呼び出してからunittest.installHandler()、何らかの方法で Pytest に実行を停止するように指示する必要があるようです。

Pytest では、Ctrl+を押すと、破棄Cせずにテストがすぐに停止します。呼び出しinstallHandler()は、実行を停止しないことを意味します。

4

0 に答える 0