23.3.7 TestResultオブジェクト

TestResultは、複数のテスト結果を記録します。TestCaseクラ スとTestSuiteクラスのテスト結果を正しく記録しますので、テスト開 発者が独自にテスト結果を管理する処理を開発する必要はありません。

unittestを利用したテストフレームワークでは、 TestRunner.run()が返すTestResultインスタンスを参照し、 テスト結果をレポートします。

以下の属性は、テストの実行結果を検査する際に使用することができます:

errors
TestCaseと例外のトレースバック情報をフォーマットした文字列の 2要素タプルからなるリスト。それぞれのタプルは予想外の例外を送出したテストに 対応します。 バージョン 2.2 で 変更 された仕様: sys.exc_info()の結果ではなく、 フォーマットしたトレースバックを保存

failures
TestCaseと例外のトレースバック情報をフォーマットした文字列の 2要素タプルからなるリスト。それぞれのタプルはTestCase.fail*()TestCase.assert*()メソッドを使って見つけ出した失敗に対応します。 バージョン 2.2 で 変更 された仕様: sys.exc_info()の結果ではなく、フォーマット したトレースバックを保存

testsRun
これまでに実行したテストの総数。

wasSuccessful( )
これまでに実行したテストが全て成功していればTrueを、 それ以外ならFalseを返す。

stop( )
このメソッドを呼び出してTestResultshouldStop属性 にTrueをセットすることで、実行中のテストは中断しなければな らないというシグナルを送ることができます。TestRunnerオブジェ クトはこのフラグを尊重してそれ以上のテストを実行することなく復帰しな ければなりません。

たとえばこの機能は、ユーザのキーボード割り込みを受け取っ てTextTestRunnerクラスがテストフレームワークを停止させるのに 使えます。TestRunnerの実装を提供する対話的なツールでも同じよ うに使用することができます。

以下のメソッドは内部データ管理用のメソッドですが、対話的にテスト結果をレ ポートするテストツールを開発する場合などにはサブクラスで拡張することがで きます。

startTest( test)
testを実行する直前に呼び出されます。

デフォルトの実装では単純にインスタンスのtestRunカウンタをイン クリメントします。

stopTest( test)
testの実行直後に、テスト結果に関わらず呼び出されます。

デフォルトの実装では何もしません。

addError( test, err)
テストtest実行中に、想定外の例外が発生した場合に呼び出されます。 errsys.exc_info()が返すタプル(type, value, traceback)です。

デフォルトの実装ではインスタンスのerrors属性 に(test, err)を追加します。

addFailure( test, err)
テストが失敗した場合に呼び出されます。errsys.exc_info()が返すタプル(type, value, traceback)です。

デフォルトの実装ではインスタンスのfailures属性 に(test, err)を追加します。

addSuccess( test)
テストケースtestが成功した場合に呼び出されます。

デフォルトの実装では何もしません。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。