Main Content

TestRunner を拡張するプラグインの作成

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

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

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

テスト ランナーは、さまざまなメソッドを次の図のように実行します。

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

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

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

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

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

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

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

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

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

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

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

テスト クラス レベルの TestRunnerPlugin メソッドは、同じテスト クラスまたは同じ関数ベースのテストに属するテスト スイート要素の作成、セットアップ、実行、および破棄を拡張します。これらのメソッドは、テスト ランナーが実行する配列 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 つの Test メソッドで構成されるか、または、テストがパラメーター化されている場合は、テストのパラメーター化の 1 つのインスタンスで構成されます。

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

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

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

参考

関数

クラス

関連するトピック