Main Content

matlab.unittest.diagnostics.Diagnostic 클래스

패키지: matlab.unittest.diagnostics

matlab.unittest 진단을 위한 기본 인터페이스 클래스

설명

Diagnostic 인터페이스 클래스를 사용하여 matlab.unittest 프레임워크 및 해당 클라이언트가 진단 정보를 패키징할 수 있습니다. 개별 비교를 위한 사용자 제공 테스트 진단이든, 비교에 사용된 Constraint 관련 진단이든, 모든 진단은 Diagnostic에서 파생됩니다.

Diagnostic에서 파생된 클래스는 수행할 진단 작업을 인코딩합니다. 이 클래스는 테스트 실행 프레임워크에서 적절히 표시되는 진단 결과를 생성합니다. 이 요구 사항을 충족하는 대신, 직접적으로 Diagnostic 구현을 matlab.unittest 가설 검정(Qualification)과 함께 사용할 수 있습니다. 이 가설 검정은 진단 작업을 실행하고, 테스트 실행 프레임워크가 사용할 진단 결과를 저장합니다.

편의상 이 프레임워크는 사용자 제공 테스트 진단인 경우 문자형 벡터로 구성된 배열, string형, 함수 핸들에 적절한 진단 인스턴스를 생성합니다. 빠른 진단 속도를 유지하기 위해, 가설 검정(Qualification)이 실패한 경우, 또는 테스트 실행 프레임워크가 통과한 가설 검정(Qualification)을 명시적으로 표시하는 경우에만 이러한 값이 Diagnostic 인스턴스로 변환됩니다. 디폴트 테스트 실행기는 통과한 가설 검정(Qualification)을 명시적으로 표시하지 않습니다.

속성

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