exponenta event banner

matlab.unittest.diagnostics.Diagnostic класс диагностики

Пакет: matlab.unittest.diagnostics

Основной класс интерфейса для matlab.unittest диагностика

Описание

Diagnostic класс интерфейса - это средство, с помощью которого matlab.unittest фреймворк и диагностическая информация о пакетах его клиентов. Все диагностические данные получены из Diagnostic, являются ли они поставленной пользователем тестовой диагностикой для индивидуального сравнения или диагностики, связанной с Constraint используется при сравнении.

Классы, производные от Diagnostic кодировать выполняемые диагностические действия. Они дают результат диагностики, который соответствующим образом отображается при выполнении теста. В обмен на выполнение этого требования, любое Diagnostic реализация может использоваться непосредственно с matlab.unittest квалификация. Эти квалификации выполняют диагностическое действие и сохраняют результат для использования тестовой исполняемой инфраструктуры.

Для удобства фреймворк создает соответствующие диагностические экземпляры для массивов векторов символов, строк и функциональных дескрипторов, когда они поставляются пользователем для тестовой диагностики. Для сохранения хорошей производительности эти значения преобразуются только в Diagnostic случаи, когда происходит сбой квалификации или когда тестовый исполняемый фреймворк явно наблюдает за прохождением квалификации. Бегун теста по умолчанию явно не соблюдает проходящие квалификации.

Свойства

Artifacts

Артефакты, созданные во время последней диагностической оценки, возвращены в виде массива артефактов.

DiagnosticText

DiagnosticText свойство предоставляет средства, с помощью которых фактическая диагностическая информация передается потребителям диагностики, например, фреймворки тестирования. Свойство представляет собой вектор символов, определенный во время вычисления diagnose способ.

Методы

диагностироватьВыполнить диагностическое действие
соединениеОбъединение нескольких средств диагностики в один массив

Копирование семантики

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

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