Main Content

reportFinalizedResult

クラス: matlab.unittest.plugins.TestRunnerPlugin
名前空間: matlab.unittest.plugins

確定したテスト結果の報告を拡張する

説明

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

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

入力引数

すべて展開する

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

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

属性

Accessprotected

メソッドの属性の詳細については、メソッドの属性を参照してください。

すべて展開する

現在のフォルダー内に ExamplePlugin.m という名前のファイルでプラグインを作成します。reportFinalizedResult メソッドをオーバーライドして、各 Test 要素のステータスを表示します。

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

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

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 で導入