TestRunner
を拡張するプラグインの作成
カスタム プラグインの概要
TestRunnerPlugin
メソッドには、テスト セッション、テスト スイート、テスト クラス、テストの 4 つのレベルがあります。各レベルで、テストの実行を拡張するメソッドを実装します。さらに、テスト スイート、テスト クラス、テストの各レベルで、テストまたはテスト フィクスチャの作成、セットアップ、破棄を拡張するメソッドを実装します。
テスト スイート、テスト クラス、テストの各レベルでは、reportFinalizedResult
メソッドを使用すると、確定したテスト結果をテスト ランナーによってレポートできるようになります。テスト結果は、残りのテスト内容でそれ以上結果が変更されなくなると確定します。テスト ランナーは、各レベルで reportFinalizedResult
メソッドを呼び出すかどうかを決定します。テスト セッション レベルでは、テスト スイートが確定すると、reportFinalizedSuite
メソッドによってテスト ランナーがテスト結果をレポートできるようになります。
テスト ランナーは、さまざまなメソッドを次の図のように実行します。
作成メソッドは、TestRunnerPlugin
メソッド内で、出力引数を使用する唯一のセットです。通常、対応するレベルのテスト内容からのさまざまなイベントをリスニングするために作成メソッドを拡張します。TestCase
と Fixture
のどちらのインスタンスも handle
クラスから継承するので、addlistener
メソッドを使用してリスナーを追加します。テスト内容のセットアップ、実行、破棄を行うメソッドは、テスト ランナーがテスト内容を評価する方法を拡張します。
テスト セッション レベルのプラグイン メソッドの拡張
テスト セッション レベルの TestRunnerPlugin
メソッドは、テスト ランナーに渡されるテスト スイートの実行とレポートを拡張します。これらのメソッドは、runSession
メソッドのスコープに入ります。
このレベルの実行メソッド runTestSuite
は、テスト フレームワークがテスト ランナーに渡す配列 TestSuite
全体の一部の実行を拡張します。reportFinalizedSuite
メソッドは、runTestSuite
によって確定されたテスト スイートのレポートを拡張します。
テスト スイート レベル プラグイン メソッドの拡張
テスト スイート レベルの TestRunnerPlugin
メソッドは、共有テスト フィクスチャの作成、セットアップ、実行、および破棄を拡張します。これらのメソッドは、runTestSuite
メソッドのスコープに入ります。
メソッドのタイプ | テスト レベルのスコープ: runTestSuite |
---|---|
作成メソッド | createSharedTestFixture |
セットアップ メソッド | setupSharedTestFixture |
実行メソッド | runTestClass |
破棄メソッド | teardownSharedTestFixture |
このレベルでは、createSharedTestFixture
メソッドは出力引数を使用する唯一のプラグイン メソッドです。これは、テスト クラスが必要とする共有フィクスチャごとに Fixture
インスタンスを返します。これらの Fixture
インスタンスは、TestCase
の getSharedTestFixtures
メソッドからテストできます。
このレベルの実行メソッド 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 回呼び出します。
参考
関数
クラス
matlab.unittest.plugins.TestRunnerPlugin
|matlab.unittest.TestRunner
|matlab.unittest.TestCase
|matlab.unittest.fixtures.Fixture
|matlab.unittest.TestSuite
|matlab.unittest.plugins.Parallelizable
|matlab.automation.streams.OutputStream