23.3.4 クラスと関数

クラス TestCase( [methodName])
TestCaseクラスのインスタンスは、unittestの世界における テストの最小実行単位を示しま す。このクラスをベースクラスとして使用し、必要なテストを具象サブクラス に実装します。TestCaseクラスでは、テストランナーがテストを実行 するためのインターフェースと、各種のチェックやテスト失敗をレポートする ためのメソッドを実装しています。

それぞれのTestCaseクラスのインスタンスはただ一つのテストメソッド、 methodNameという名のメソッドを実行します。既に次のような例を扱った ことを憶えているでしょうか。

  def suite():
      suite = unittest.TestSuite()
      suite.addTest(WidgetTestCase('testDefaultSize'))
      suite.addTest(WidgetTestCase('testResize'))
      return suite

ここでは、それぞれが一つずつのテストを実行するようなWidgetTestCaseの 二つのインスタンスを作成しています。

methodNameのデフォルトは'runTest'です。

クラス FunctionTestCase( testFunc[, setUp[, tearDown[, description]]])
このクラスではTestCaseインターフェースの内、テストランナーがテ ストを実行するためのインターフェースだけを実装しており、テスト結果のチ ェックやレポートに関するメソッドは実装していません。既存のテストコード をunittestによるテストフレームワークに組み込むために使用し ます。

クラス TestSuite( [tests])
このクラスは、個々のテストケースやテストスイートの集約を示します。通常 のテストケースと同じようにテストランナーで実行するためのインタフェース を備えています。TestSuiteインスタンスを実行することはスイートの 繰り返しを使って個々のテストを実行することと同じです。

引数testsが与えられるならば、それはテストケースに亘る繰り返し可能オブジェクト または内部でスイートを組み立てるための他のテストスイートでなければなりません。 後からテストケースやスイートをコレクションに付け加えるためのメソッドも提供されています。

クラス TestLoader( )
モジュールまたはTestCaseクラスから、指定した条件に従ってテス トをロードし、TestSuiteにラップして返します。このクラスは与え られたモジュールまたはTestCaseのサブクラスの中から全てのテス トをロードできます。

クラス TestResult( )
このクラスはどのテストが成功しどのテストが失敗したかの情報を集積する のに使います。

defaultTestLoader
TestLoaderのインスタンスで、共用することが目的です。 TestLoaderをカスタマイズする必要がなければ、新しい TestLoaderオブジェクトを作らずにこのインスタンスを使用します。

クラス TextTestRunner( [stream[, descriptions[, verbosity]]])
実行結果を標準エラーに出力する、単純なテストランナー。いくつかの設定項目 がありますが、非常に単純です。グラフィカルなテスト実行アプリケーション では、独自のテストランナーを作成してください。

main( [module[, defaultTest[, argv[, testRunner[, testRunner]]]]])
テストを実行するためのコマンドラインプログラム。この関数を使えば、 簡単に実行可能なテストモジュールを作成する事ができます。 一番簡単なこの関数の使い方は、以下の行をテストスクリプトの最後に置くことです。

if __name__ == '__main__':
    unittest.main()

場合によっては、doctest モジュールを使って書かれた 既存のテストがあります。その場合、モジュールは 既存のdoctestに基づいたテストコードから unittest.TestSuite インスタンスを 自動的に構築できる DocTestSuite クラスを提供します。 バージョン 2.3 で 新たに追加 された仕様です。

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