5.3.7 TestResultオブジェクト

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

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

TestResultインスタンスは、テストの実行件数と、テスト中に発生した 失敗・エラーの情報を(testcase, traceback)のタプルで保 持します。tracebackは例外のトレースバック情報をフォーマットした文 字列です。

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

errors
テスト中に発生した例外の内、テスト失敗ではなくエラーとなった例外の情報 のリスト。リストの要素は、TestCaseと例外のトレースバック情報を フォーマットした文字列の組となります。 バージョン 2.2 で 変更 された仕様: sys.exc_info()の結果ではなく、フォーマットしたトレースバッ クを保存

failures
テスト中に発生した失敗の情報のリスト。リストの要素は、TestCase と例外のトレースバック情報をフォーマットした文字列の組となります。 バージョン 2.2 で 変更 された仕様: sys.exc_info()の結果ではなく、フォーマット したトレースバックを保存

testsRun
開始したテストの数。

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

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

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

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

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

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

addSuccess( test)
テストが失敗しなかった場合に呼び出されます。testには、テストケー スオブジェクトが指定されます。

TestResultオブジェクトには、さらにもう一つのメソッドがあります:

stop( )
テスト中断のシグナルを送ります。このメソッドが呼び出されると、テストラ ンナーは以降のテスト実行を中止し、呼び出し元に復帰します。 TextTestRunnerではキーボードからの割り込みでテストを中断するた めにこのメソッドを使用しており、独自のランナーを実装する場合にも同じよ うに使用することができます。

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