Main Content

matlab.unittest.plugins.DiagnosticsValidationPlugin クラス

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

診断コードの検証に役立つプラグイン

説明

matlab.unittest.plugins.DiagnosticsValidationPlugin クラスは、診断コードの検証に役立つプラグインを提供します。ユーザー指定の診断が正しく実行されることを確認するには、テスト ランナーに DiagnosticsValidationPlugin インスタンスを追加します。

テストではエラー条件が必ずしも発生しないため、DiagnosticsValidationPlugin は役に立ちます。この診断コード内にプログラミング エラーが存在する場合、テストが失敗しない限りエラーは明らかにならないことがあります。このプラグインは、テストにパスしたのか失敗したのかに関係なく無条件に診断を評価するため、診断コードにプログラミング エラーがないことを確認するのに役立ちます。

matlab.unittest.plugins.DiagnosticsValidationPlugin クラスは handle クラスです。

作成

説明

plugin = matlab.unittest.plugins.DiagnosticsValidationPlugin は、診断コードの検証に役立つプラグインを作成します。このプラグインはテキスト出力を画面に送ります。

plugin = matlab.unittest.plugins.DiagnosticsValidationPlugin(stream) は、指定された出力ストリームにデータを書き込むプラグインを作成します。

入力引数

すべて展開する

プラグインがテキスト出力を送る場所。matlab.automation.streams.OutputStream オブジェクトとして指定します。既定では、プラグインは出力を画面に送ります。

すべて折りたたむ

DiagnosticsValidationPlugin クラスを使用して診断コードを検証します。

現在のフォルダー内の ExampleTest.m という名前のファイルに、ExampleTest クラスを作成します。テスト クラス内のすべてのテストにパスしますが、testThree メソッドでは、指定した診断情報に意図的なエラーが含まれています。

classdef ExampleTest < matlab.unittest.TestCase
    methods (Test)
        function testOne(~)
            % Test code
        end

        function testTwo(~)
            % Test code
        end
        
        function testThree(testCase)
            % This test should use @dir as a function handle,
            % but there is a typo
            testCase.verifyEqual("myFile","myFile",@dri)
        end
    end
end

DiagnosticsValidationPlugin クラスをインポートします。

import matlab.unittest.plugins.DiagnosticsValidationPlugin

ExampleTest クラスからテスト スイートを作成します。

suite = testsuite("ExampleTest");

既定のテスト ランナーを作成し、それを使用してテストを実行します。テストにパスするため、テスト フレームワークでは testThree の診断コードのバグが検出されません。

runner = testrunner;
results1 = runner.run(suite);
Running ExampleTest
...
Done ExampleTest
__________

そこで、テスト ランナーに DiagnosticsValidationPlugin インスタンスを追加し、テストを実行します。testThree にパスしますが、フレームワークは関数ハンドルで指定された診断コードを実行し、バグを検出します。

runner.addPlugin(DiagnosticsValidationPlugin)
results2 = runner.run(suite);
Running ExampleTest
..
------------------------------
Validation of Test Diagnostic:
------------------------------
Error occurred while capturing diagnostics:
    Error using evalc
    Unrecognized function or variable 'dri'.
    
    Error in ExampleTest/testThree (line 14)
                testCase.verifyEqual("myFile","myFile",@dri)
.
Done ExampleTest
__________

ヒント

  • 診断解析はテストのパフォーマンスを低下させ、膨大なテキスト出力が生成されることがあります。テストを実行する際には、プラグインを使用する前にそうした要因を検討してください。

バージョン履歴

R2013a で導入