UnitTestフレームワーク-シグナル処理
テスト実行中のcontrol-Cのより効率的な処理は、unittestの-c / -catchコマンドラインオプションと、 catchbreakパラメータ。キャッチブレーク動作を有効にすると、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)
登録する TestResultcontrol-c処理のオブジェクト。結果を登録すると、その結果への弱参照が格納されるため、結果がガベージコレクションされるのを防ぐことはできません。
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ツールキットに基づくユーティリティもここで利用できます。