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에 개발됨