Main Content

TestRunner を拡張するためのプラグインの書き込み

カスタム プラグインの概要

TestRunnerPlugin メソッドには、テスト セッション、テスト スイート、テスト クラス、テストの 4 つのレベルがあります。各レベルで、テストの実行を拡張するメソッドを実装します。さらに、テスト スイート、テスト クラス、テストの各レベルで、テストまたはテスト フィクスチャの作成、セットアップ、破棄を拡張するメソッドを実装します。

テスト スイート、テスト クラス、テストの各レベルでは、reportFinalizedResult メソッドを使うと、確定したテスト結果を TestRunner によってレポートできるようになります。テスト結果は、残りのテスト内容でそれ以上結果が変更されなくなると確定します。TestRunner は、各レベルで reportFinalizedResult メソッドを呼び出すかどうかを決定します。テスト セッション レベルでは、テスト スイートが確定すると、reportFinalizedSuite メソッドによって TestRunner がテスト結果をレポートできるようになります。

TestRunner は、さまざまなメソッドを次の図のように実行します。

TestRunnerPlugin methods organized into the test session, test suite, test class, and test levels

作成メソッドは、TestRunnerPlugin メソッド内で、出力引数を使用する唯一のセットです。通常、対応するレベルのテスト内容からのさまざまなイベントをリスニングするために作成メソッドを拡張します。 TestCaseFixture のどちらのインスタンスも handle クラスから継承するので、addlistener メソッドを使用してリスナーを追加します。テスト内容のセットアップ、実行、破棄を行うメソッドは、TestRunner がテスト内容を評価する方法を拡張します。

テスト セッション レベルのプラグイン メソッドの拡張

テスト セッション レベルの TestRunnerPlugin メソッドは、TestRunner に渡されるテスト スイートの実行とレポートを拡張します。これらのメソッドは、runSession メソッドのスコープに入ります。

このレベルの実行メソッド runTestSuite は、テスト フレームワークが TestRunner に渡す配列 TestSuite 全体の一部の実行を拡張します。reportFinalizedSuite メソッドは、runTestSuite によって確定されたテスト スイートのレポートを拡張します。

テスト スイート レベル プラグイン メソッドの拡張

テスト スイート レベルの TestRunnerPlugin メソッドは、共有テスト フィクスチャの作成、セットアップ、実行、および破棄を拡張します。これらのメソッドは、runTestSuite メソッドのスコープに入ります。

メソッドのタイプテスト レベルの範囲: runTestSuite
作成メソッドcreateSharedTestFixture
セットアップ メソッドsetupSharedTestFixture
実行メソッドrunTestClass
破棄メソッドteardownSharedTestFixture

このレベルでは、createSharedTestFixture メソッドは出力引数を使用する唯一のプラグイン メソッドです。これは、テスト クラスが必要とする共有フィクスチャごとに Fixture インスタンスを返します。これらのフィクスチャのインスタンスは、TestCasegetSharedTestFixtures メソッドからテストできます。

このレベルの実行メソッド runTestClass は、同じテスト クラスまたは同じ関数ベースのテストに属するテストの実行を拡張し、テスト レベルのプラグイン メソッドとして記述された機能を組み込みます。

テスト クラス レベル プラグイン メソッドの拡張

テスト クラス レベルの TestRunnerPlugin メソッドは、同じテスト クラスまたは同じ関数ベースのテストに属するテスト スイート要素の作成、セットアップ、実行、および破棄を拡張します。これらのメソッドは、TestRunner が実行する配列 TestSuite 全体のサブセットに適用されます。

メソッドのタイプテスト レベルの範囲: runTestClass
作成メソッドcreateTestClassInstance
セットアップ メソッドsetupTestClass
実行メソッドrunTest
破棄メソッドteardownTestClass

このレベルでは、createTestClassInstance メソッドは出力引数を使用する唯一のプラグイン メソッドです。これは、クラス レベルで作成された TestCase インスタンスを返します。それぞれのクラスで、テスト フレームワークはインスタンスを属性 TestClassSetup または TestClassTeardown をもつ任意のメソッドに渡します。

属性 ClassSetupParameter をもつプロパティがある場合は、テスト クラスのセットアップはパラメーター化されます。この場合、テスト フレームワークは、クラス セットアップのパラメーター化が決定する回数に応じて setupTestClass メソッドと teardownTestClass メソッドを評価します。

このレベルの実行メソッド runTest は、1 つの TestSuite 要素の実行を拡張し、テスト レベルのプラグイン メソッドとして記述された機能を組み込みます。

テスト フレームワークは、runTestClass メソッドのスコープ内のテスト クラス レベルでメソッドを評価します。TestClassSetup コードが正常に終了すると、runTest メソッドが配列 TestSuite の各要素につき 1 回呼び出されます。それぞれの TestClassSetup パラメーター化は、作成、セットアップおよび破棄メソッドを 1 回呼び出します。

テスト レベルのプラグイン メソッドの拡張

テスト レベルの TestRunnerPlugin メソッドは、1 つのテスト スイート要素の作成、セットアップ、実行、および破棄を拡張します。1 つの Test 要素は 1 つのテスト メソッドで構成されるか、または、テストがパラメーター化されている場合は、テストのパラメーター化の 1 つのインスタンスで構成されます。

メソッドのタイプテスト レベルの範囲: runTest
作成メソッドcreateTestMethodInstance
セットアップ メソッドsetupTestMethod
実行メソッドrunTestMethod
破棄メソッドteardownTestMethod

このレベルでは、createTestMethodInstance メソッドは出力引数を使用する唯一のプラグイン メソッドです。これは、Test 要素ごとに作成された TestCase インスタンスを返します。テスト フレームワークは、これらのインスタンスそれぞれを、対応する Test メソッドおよび属性 TestMethodSetup または TestMethodTeardown をもつ任意のメソッドに渡します。

テスト フレームワークは、runTest メソッドのスコープ内のテスト レベルでメソッドを評価します。フレームワークがすべての TestMethodSetup 作業を終了すると、このレベルのプラグイン メソッドを Test 要素につき 1 回呼び出します。

参考

| | | | | | |

関連するトピック