Unittest-framework-signal-handling
UnitTestフレームワーク-信号処理
テスト実行中のcontrol-Cのより効率的な処理は、 catchbreak パラメーターとともに、unittestの-c/-catchコマンドラインオプションによって提供されます。 キャッチブレーク動作を有効にすると、control-Cは現在実行中のテストの完了を許可し、テスト実行は終了し、これまでのすべての結果を報告します。 2番目のcontrol-cは、通常の方法でKeyboardInterruptを発生させます。
unittestハンドラーが呼び出されたが、signal.SIGINTハンドラーがインストールされていない場合、デフォルトハンドラーが呼び出されます。 これは通常、インストールされたハンドラを置き換えてそれに委譲するコードによって期待される動作になります。 unittest control-c処理を無効にする必要がある個々のテストでは、removeHandler()デコレータを使用できます。
次のユーティリティ関数は、テストフレームワーク内でcontrol-c処理機能を有効にします-
unittest.installHandler()
control-cハンドラーをインストールします。 signal.SIGINT を受信すると、登録されたすべての結果にTestResult.stop()が呼び出されます。
unittest.registerResult(result)
control-c処理のために TestResult オブジェクトを登録します。 結果を登録すると、それに対する弱い参照が格納されるため、結果がガベージコレクションされるのを防ぐことはできません。
unittest.removeResult(result)
登録済みの結果を削除します。 結果が削除されると、Control-cに応答してその結果オブジェクトでTestResult.stop()が呼び出されなくなります。
unittest.removeHandler(function = None)
引数なしで呼び出された場合、この関数は、control-cハンドラーがインストールされている場合、それを削除します。 この関数は、テストの実行中にハンドラーを一時的に削除するためのテストデコレーターとしても使用できます。
GUIテストランナー
unittestモジュールは、テストを対話的に検出および実行するためにインストールされます。 このユーティリティ、Pythonスクリプト「inittestgui.py」は、TKグラフィックツールキット用のPythonポートであるTkinterモジュールを使用します。 テストの検出と実行に使いやすいGUIを提供します。
Python unittestgui.py
[テストの検出]ボタンをクリックします。 テストを実行するディレクトリとモジュールを選択できる小さなダイアログボックスが表示されます。
最後に、開始ボタンをクリックします。 選択したパスとモジュール名からテストが検出され、結果ペインに結果が表示されます。
個々のテストの詳細を表示するには、結果ボックスでテストを選択してクリックします-
Pythonのインストールでこのユーティリティが見つからない場合は、プロジェクトページhttp://pyunit.sourceforge.net/から入手できます。
同様に、wxpythonツールキットに基づくユーティリティも利用できます。