Main Content

diagnose

診断アクションを実行する

説明

diagnose(diagnostic) は、ユニット テスト フレームワークなどの診断コンシューマーが診断を評価するメソッドを呼び出したときに、指定した診断のアクションを実行します。

Diagnostic クラスから派生したクラスは、diagnose メソッドを実装しなければなりません。カスタム診断クラスのこのメソッドを実装する際に、このメソッド内の DiagnosticText プロパティを設定して、診断のコンシューマーが情報を利用できるようにします。

入力引数

すべて展開する

診断。matlab.automation.diagnostics.Diagnostic オブジェクトとして指定します。

属性

Abstracttrue

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

すべて展開する

アクティブなプロセスのステータスを提供するカスタム診断を作成します。診断を定義するクラスは matlab.automation.diagnostics.Diagnostic から派生させ、diagnose メソッドを実装し、DiagnosticText プロパティを設定しなければなりません。

現在のフォルダー内の ProcessStatusDiagnostic.m という名前のファイルで、matlab.automation.diagnostics.Diagnostic をサブクラス化して ProcessStatusDiagnostic クラスを作成します。次の要素をクラスに追加します。

  • HeaderText プロパティ — このプロパティを追加して、診断の作成時に診断テキストをカスタマイズします。

  • ProcessStatusDiagnostic メソッド — このコンストラクター メソッドを実装して、HeaderText プロパティを設定します。

  • diagnose メソッド — このメソッドを実装して、診断アクションをエンコードします。プロセスのステータス情報にアクセスし、この情報を使用して DiagnosticText プロパティを設定します。

classdef ProcessStatusDiagnostic < matlab.automation.diagnostics.Diagnostic
    properties (SetAccess=immutable)
        HeaderText
    end

    methods
        function diagnostic = ProcessStatusDiagnostic(header)
            arguments
                header (1,1) string = "Process Status Information"
            end
            diagnostic.HeaderText = header;
        end

        function diagnose(diagnostic)
            [~,processInfo] = system("ps");
            diagnostic.DiagnosticText = diagnostic.HeaderText + ...
                newline + processInfo;
        end
    end
end

対話型テスト用にテスト ケースを作成します。

testCase = matlab.unittest.TestCase.forInteractiveUse;

テストが失敗したときにカスタム診断情報を表示するには、ProcessStatusDiagnostic オブジェクトを検定メソッドに渡します。

testCase.verifyFail(ProcessStatusDiagnostic)
Verification failed.
    ----------------
    Test Diagnostic:
    ----------------
    Process Status Information
          PID    PPID    PGID     WINPID   TTY         UID    STIME COMMAND
        22488       1   22488      22488  ?        2964717 10:24:31 /usr/bin/ps

ProcessStatusDiagnostic オブジェクトの作成時にオプションの入力を指定して、診断テキストをカスタマイズします。

testCase.verifyFail(ProcessStatusDiagnostic("Status of Active Processes"))
Verification failed.
    ----------------
    Test Diagnostic:
    ----------------
    Status of Active Processes
          PID    PPID    PGID     WINPID   TTY         UID    STIME COMMAND
        22828       1   22828      22828  ?        2964717 10:24:53 /usr/bin/ps

バージョン履歴

R2013a で導入