Main Content

reportFinalizedResult

クラス: matlab.unittest.plugins.TestRunnerPlugin
パッケージ: matlab.unittest.plugins

確定したテスト結果の報告の有効化

説明

reportFinalizedResult(plugin,pluginData) は、確定したテスト結果の報告を有効にします。テスト結果は、検定が結果を変更できなくなると確定されます。たとえば、TestClassTeardown メソッド内のコードを実行するときや共有テスト フィクスチャを破棄するときに、以前に実行したテスト結果が TestRunner によって変更される場合があります。

テスト結果のストリーミングまたはインライン レポートには、reportFinalizedResult メソッドをオーバーライドするプラグインが推奨されます。このメソッドを実装した場合、TestRunner は結果が確定した時点ですぐに報告を行います。その後プラグインは、テスト スイート全体が完了するまで待機せずに、テスト スイートの実行中にテスト結果を報告することができます。テスト フレームワークは、TestRunnerPluginrunTestSuite メソッド、runTestClass メソッド、または runTest メソッドのスコープ内で reportFinalizedResult を評価できます。

入力引数

すべて展開する

プラグイン オブジェクト。matlab.unittest.plugins.TestRunnerPlugin クラスのインスタンスとして指定します。

確定したテスト情報。matlab.unittest.plugins.plugindata.FinalizedResultPluginData クラスのインスタンスとして指定します。テスト フレームワークはこの情報を使用してプラグインにテスト内容を記述します。

すべて展開する

reportFinalizedResult メソッドを使用して、各 Test 要素のステータスを表示します。

現在のフォルダーにプラグイン ファイル ExamplePlugin.m を作成します。

classdef ExamplePlugin < matlab.unittest.plugins.TestRunnerPlugin
    methods (Access = protected)
        function reportFinalizedResult(plugin, pluginData)
            thisResult = pluginData.TestResult;
            if thisResult.Passed
                status = 'PASSED';
            elseif thisResult.Failed
                status = 'FAILED';
            elseif thisResult.Incomplete
                status = 'SKIPPED';
            end
            fprintf('%s: %s in %f seconds.\n',thisResult.Name,...
                status,thisResult.Duration)
            reportFinalizedResult@...
                matlab.unittest.plugins.TestRunnerPlugin(plugin,pluginData);
        end
    end
end

現在のフォルダーにテスト クラス ファイル ExampleTest.m を作成します。

classdef ExampleTest < matlab.unittest.TestCase
    methods(Test)
        function testOne(testCase)
            testCase.assertGreaterThan(5,1)
        end
        function testTwo(testCase)
            wrongAnswer = 'wrong';
            testCase.verifyEmpty(wrongAnswer,'Not Empty')
            testCase.verifyClass(wrongAnswer,'double','Not double')
        end
        function testThree(testCase)
            testCase.assumeEqual(7*2,13,'Values not equal')
        end
        function testFour(testCase)
            testCase.verifyEqual(3+2,5);
        end
    end
end

コマンド プロンプトでテスト スイートを作成し、TestRunner にプラグインを追加して、テストを実行します。

import matlab.unittest.TestSuite
import matlab.unittest.TestRunner

suite = TestSuite.fromClass(?ExampleTest);
runner = TestRunner.withNoPlugins;
runner.addPlugin(ExamplePlugin)
result = runner.run(suite);
ExampleTest/testOne: PASSED in 0.002216 seconds.
ExampleTest/testTwo: FAILED in 0.006105 seconds.
ExampleTest/testThree: SKIPPED in 0.007458 seconds.
ExampleTest/testFour: PASSED in 0.004865 seconds.

バージョン履歴

R2015b で導入