5.3.8 TestLoader オブジェクト

TestLoaderクラスは、クラスやモジュールからテストスイートを作成す るために使用します。通常はこのクラスのインスタンスを作成する必要はなく、 unittestモジュールのモジュール属性defaultTestLoaderを 共用インスタンスとして使用することができます。

TestLoader オブジェクトには以下のメソッドがあります:

loadTestsFromTestCase( testCaseClass)
TestCaseの派生クラスtestCaseClassに含まれる全テスト ケースのスイートを返します。

loadTestsFromModule( module)
指定したモジュールに含まれる全テストケースのスイートを返します。このメ ソッドはmodule内のTestCase派生クラスを検索し、見つかった クラスのテストメソッドごとにクラスのインスタンスを作成します。

警告: Testcaseクラスを基底クラスとしてクラス階層を構築する とfixtureや補助的な関数をうまく共用することができますが、基底クラスに 直接インスタンス化できないテストメソッドがあると、この loadTestsFromModuleを使うことができません。この場合でも、 fixtureが全て別々で定義がサブクラスにある場合は使用することができま す。

loadTestsFromName( name[, module])
文字列で指定される全テストケースを含むスイートを返します。

nameには``ドット修飾名''でモジュールかテストケースクラス、または TestCaseTestSuiteのインスタンスを返す呼び出し可能オ ブジェクトを指定します。例えばSampleTestsモジュールに TestCaseから派生したSampleTestCaseクラスがあり、 SampleTestCaseにはテストメソッドtest_one()test_two()test_three()があるとします。この場合、 name'SampleTests.SampleTestCase'と指定すると、 SampleTestCaseの三つのテストメソッドを実行するテストスイートが 作成されます。'SampleTests.SampleTestCase.test_two'と指定すれ ば、test_two()だけを実行するテストスイートが作成されます。イ ンポートされていないモジュールやパッケージ名を含んだ名前を指定した場合 は自動的にインポートされます。

また、moduleを指定した場合、module内のnameを取得しま す。

loadTestsFromNames( names[, module])
loadTestsFromName()と同じですが、名前を一つだけ指定するのでは なく、複数の名前のシーケンスを指定する事ができます。戻り値は names中の名前で指定されるテスト全てを含むテストスイートです。

getTestCaseNames( testCaseClass)
testCaseClass中の全てのメソッド名を含むソート済みシーケンスを返 します。

以下の属性は、サブクラス化またはインスタンスの属性値を変更してTestLoaderをカスタマイズする場合に使用します。

testMethodPrefix
テストメソッドの名前と判断されるメソッド名の接頭語を示す文字列。デフォ ルト値は'test'です。

sortTestMethodsUsing
getTestCaseNames()でメソッド名をソートする際に使用する比較関 数。デフォルト値は組み込み関数cmp()です。Noneを指定 するとソートを行いません。

suiteClass
テストのリストからテストスイートを構築する呼び出し可能オブジェクト。メ ソッドを持つ必要はありません。デフォルト値はTestSuiteです。

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