2016-09-29 35 views
0

UnitTestsにはKeyboardInterruptをキャプチャする機能があり、テストを終了して結果を報告します。次いでpytestでKeyboardInterruptをキャプチャする方法は?

-c、終了する現在のテストのためのテストの実行を待機中--catch

コントロール-Cとは、これまでのすべての結果を報告します。 A Control-C は、通常のKeyboardInterrupt例外を発生させます。

この機能を提供する関数のシグナル処理を参照してください。

c.f. PyTestで

https://docs.python.org/2/library/unittest.html#command-line-optionsはCtrl +Cだけでセッションを停止します。

UniTestsと同じことを実行する方法があります:実行する

  • キャプチャKeyboardInterrupt
  • 仕上げは、継続
  • スキップ他のテスト
  • 表示結果[オプション]のテストを、レポートを印刷する可能性があります(例:pytest-htmlの使用)

ありがとう

[編集2016年11月11日]

私は私のconftest.pyファイルにフックを入れてみましたが、仕事と捉えていないようです。特に、次は、toto.txtには何も書き込まれません。

def pytest_keyboard_interrupt(excinfo): 
    with open('toto.txt', 'w') as f: f.write("Hello") 
    pytestmark = pytest.mark.skip('Interrupted Test Session') 

誰か新しい提案がありますか?

答えて

0

pytestのhookspecをご覧ください。

キーワード割り込みのフックがあります。

def pytest_keyboard_interrupt(excinfo): 
""" called for keyboard interrupt. """ 
+0

良いスタートに見えます。具体的には、私自身のプラグインを書かずにそれを使う方法は? –

関連する問題