Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

matlab.unittest.diagnostics.Diagnostic クラス

パッケージ: matlab.unittest.diagnostics

matlab.unittest 診断の基本的なインターフェイス クラス

説明

Diagnostic インターフェイス クラスは、matlab.unittest フレームワークとそのクライアントが診断情報をパッケージ化する手段です。すべての診断が導出される Diagnostic は、個別の比較のためのユーザー指定テスト診断であるか、比較で使用される Constraint に関連付けられている診断です。

Diagnostic から派生するクラスは、実行される診断アクションをエンコードします。これらのクラスは、テスト実行フレームワークによって適切に表示される診断結果を生成します。この要件を満たすことで、どの Diagnostic 実装も matlab.unittest 検定で直接使用できます。これらの検定では、診断アクションが実行されて、使用するテスト実行フレームワークの結果が保存されます。

ユーザー指定のテスト診断が、文字ベクトルの配列、string 配列および関数ハンドルの配列である場合、便宜上、フレームワークは、それらで構成される配列の適切な診断インスタンスを作成します。適切なパフォーマンスを維持するには、検定エラーが発生した場合やテスト実行フレームワークで明示的に検定のパスを観測している場合にのみ、これらの値は Diagnostic インスタンスに変換されます。既定のテスト ランナーは、検定がパスしたことを明示的に観測しません。

プロパティ

Artifacts

最後の診断評価中に生成されたアーティファクト。アーティファクトの配列として返されます。

DiagnosticText

DiagnosticText プロパティは、テスト フレームワークなど、実際の診断情報を診断の消費者に伝える手段を提供します。このプロパティは、diagnose メソッドの評価中に定義される文字ベクトルです。

メソッド

diagnose診断アクションの実行
join複数の診断の単一配列への結合

コピーのセマンティクス

ハンドル。コピー操作に対するハンドル クラスの影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

import matlab.unittest.constraints.IsEqualTo

% Create a TestCase for interactive use
testCase = matlab.unittest.TestCase.forInteractiveUse;

% Create StringDiagnostic upon failure
testCase.verifyThat(1, IsEqualTo(2), 'User supplied Diagnostic')

% Create FunctionHandleDiagnostic upon failure
testCase.verifyThat(1, IsEqualTo(2), @() system('ps'))

% Usage of user defined Diagnostic upon failure (see definition below)
testCase.verifyThat(1, IsEqualTo(2), ProcessStatusDiagnostic...
    ('Could not close my third party application!'))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Diagnostic definition
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
classdef ProcessStatusDiagnostic < matlab.unittest.diagnostics.Diagnostic
    % ProcessStatusDiagnostic - an example diagnostic
    %
    %   Simple example to demonstrate how to create a custom
    %   diagnostic.
    
    properties
        
        % HeaderText - user-supplied header to display
        HeaderText = '(No header supplied)';
    end
    
    methods
        function diag = ProcessStatusDiagnostic(header)
            % Constructor - construct a ProcessStatusDiagnostic
            %
            %   The ProcessStatusDiagnostic constructor takes an
            %   optional header to be displayed along with process
            %   information.
            if (nargin >0)
                diag.HeaderText = header;
            end
        end
        
        function diagnose(diag)
            
            [status, processInfo] = system('ps');
            if (status ~= 0)
                processInfo = sprintf(...
                    ['!!! Could not obtain status diagnostic information!!!'...
                    ' [exit status code: %d]\n%s'], status, processInfo);
            end
            diag.DiagnosticText = sprintf('%s\n%s', diag.HeaderText,...
                processInfo);
        end
    end
    
end % classdef