matlab.unittest.plugins.DiagnosticsOutputPlugin class

Пакет: matlab.unittest.plugins

Плагин для прямой диагностики для вывода потока

Описание

The DiagnosticsOutputPlugin класс создает плагин, чтобы направить диагностику в выход поток. Чтобы сконфигурировать тип диагностики и уровень детализации, который выводит среда тестирования, добавьте этот плагин к TestRunner образец.

Конструкция

matlab.unittest.plugins.DiagnosticsOutputPlugin создает плагин, который направляет диагностику неудачных событий и событий, регистрируемых в Verbosity.Terse уровень к ToStandardOutput поток.

matlab.unittest.plugins.DiagnosticsOutputPlugin(stream) перенаправляет диагностику в указанный выходной поток. Например, можно перенаправить выход в поток, созданный с помощью ToFile.

matlab.unittest.plugins.DiagnosticsOutputPlugin(___,Name,Value) создает плагин с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Для примера, DiagnosticsOutputPlugin('LoggingLevel',4,'IncludingPassingDiagnostics',true) создает плагин, который отображает диагностику, регистрируемую на любом уровне, а также отображает проходящую диагностику.

Входные параметры

расширить все

Выходное расположение, заданное как образец OutputStream класс. Плагин направляет диагностическую информацию в указанное место. По умолчанию плагин использует matlab.unittest.plugins.ToStandardOutput поток.

Пример: matlab.unittest.plugins.ToFile('myFile.txt')

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: DiagnosticsOutputPlugin('IncludingPassingDiagnostics',true,'OutputDetail',4) создает плагин, который включает в себя передачу диагностики и отображает диагностику на подробном уровне.

Исключить ли диагностику из сбойных событий, задается как false или true. По умолчанию плагин включает диагностику событий сбоя.

Типы данных: logical

Включать ли диагностику проходящих событий, задается как false или true. По умолчанию плагин не включает диагностику от проходящих событий.

Типы данных: logical

Максимальный уровень, на котором регистрируемая диагностика включена в образец плагина, заданный как целое значение от 0 до 4, a matlab.unittest.Verbosity объект перечисления или строковый скаляр или вектор символов, соответствующий одному из предопределенных имен представителей перечисления. Плагин включает диагностику, которая регистрируется на этом уровне и ниже. Целочисленные значения соответствуют представителям matlab.unittest.Verbosity перечисление.

Числовое представлениеИмя представителя перечисленияПодробное описание
0None

Нет информации

1Terse

Минимальная информация

2Concise

Умеренный объем информации

3Detailed

Некоторая дополнительная информация

4Verbose

Много дополнительной информации

По умолчанию плагин включает диагностику, записанную в matlab.unittest.Verbosity.Terse уровень (уровень 1). Чтобы исключить зарегистрированную диагностику, задайте LoggingLevel как Verbosity.None (уровень 0).

Зарегистрированная диагностика - это диагностика, которую вы поставляете в среду тестирования с вызовом log (TestCase) или log (Fixture) способ.

Уровень детализации для сообщаемых событий, заданный как целое значение от 0 до 4, a matlab.unittest.Verbosity объект перечисления или строковый скаляр или вектор символов, соответствующий одному из предопределенных имен представителей перечисления. Целочисленные значения соответствуют представителям matlab.unittest.Verbosity перечисление.

Плагин сообщает о проходящих, неудачных и записанных событиях с объемом деталей, заданным OutputDetail. По умолчанию плагин записывает события в matlab.unittest.Verbosity.Detailed уровень (уровень 3).

Числовое представлениеИмя представителя перечисленияПодробное описание
0None

Нет информации

1Terse

Минимальная информация

2Concise

Умеренный объем информации

3Detailed

Некоторая дополнительная информация

4Verbose

Много дополнительной информации

Свойства

расширить все

Это свойство доступно только для чтения.

Индикатор, если диагностика сбойных событий исключена, указывается как false или true (logical 0 или 1). По умолчанию ExcludeFailureDiagnostics является false и диагностика от сбойных событий включены в выходы. Чтобы исключить диагностику из сбойных событий из выхода, задайте ExcludeFailureDiagnostics как true во время конструкции плагина.

Это свойство доступно только для чтения.

Индикатор, включена ли диагностика проходящих событий, указывается как false или true (logical 0 или 1). По умолчанию IncludePassingDiagnostics является false и диагностика из проходящих событий исключены из выхода. Чтобы включить диагностику из проходящих событий в выход, задайте IncludePassingDiagnostics как true во время конструкции плагина.

Это свойство доступно только для чтения.

Максимальный уровень подробностей для записанной диагностики, включенной плагином, возвращается как matlab.unittest.Verbosity объект перечисления. Плагин включает диагностику, которая регистрируется на этом уровне и ниже. По умолчанию это значение свойства matlab.unittest.Verbosity.Terse. Можно задать другой уровень логгирования во время конструкции плагина.

Зарегистрированная диагностика - это диагностика, которую вы поставляете в среду тестирования с вызовом log (TestCase) или log (Fixture) способ.

Это свойство доступно только для чтения.

Уровень детализации для отчетных событий, возвращенный как matlab.unittest.Verbosity объект перечисления. По умолчанию это значение свойства matlab.unittest.Verbosity.Detailed. Можно задать другой уровень детализации выхода во время конструкции плагина.

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

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

Создайте файл ExampleDiagOutputTest.m содержащий следующий тестовый класс.

classdef ExampleDiagOutputTest < matlab.unittest.TestCase
    methods(Test)
        function testOne(testCase)
            import matlab.unittest.Verbosity
            testCase.log(Verbosity.Detailed,'Testing failing event')
            testCase.verifyEqual(42,13,'42 == 13')
        end
        function testTwo(testCase)
            testCase.log(3,'Testing passing event')
            testCase.verifyTrue(true,'true is true')
        end
    end
end

Создайте тестовый набор из ExampleDiagOutputTest класс. Создайте исполнителя тестов без плагинов.

import matlab.unittest.TestRunner
import matlab.unittest.TestSuite
import matlab.unittest.Verbosity
import matlab.unittest.plugins.DiagnosticsOutputPlugin

suite = TestSuite.fromClass(?ExampleDiagOutputTest);
runner = TestRunner.withNoPlugins();

Создайте DiagnosticsOutputPlugin по умолчанию, добавьте его к питателю и запустите тесты.

plugin = DiagnosticsOutputPlugin;
runner.addPlugin(plugin);
result = runner.run(suite);
================================================================================
Verification failed in ExampleDiagOutputTest/testOne.

    ----------------
    Test Diagnostic:
    ----------------
    42 == 13

    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual failed.
    --> The values are not equal using "isequaln".
    --> Failure table:
            Actual    Expected    Error     RelativeError  
            ______    ________    _____    ________________
        
              42         13        29      2.23076923076923
    
    Actual Value:
        42
    Expected Value:
        13

    ------------------
    Stack Information:
    ------------------
    In C:\work\ExampleDiagOutputTest.m (ExampleDiagOutputTest.testOne) at 5
================================================================================
Failure Summary:

     Name                           Failed  Incomplete  Reason(s)
    ============================================================================
     ExampleDiagOutputTest/testOne    X                 Failed by verification.

Создайте другой исполнитель тестов и DiagnosticsOutputPlugin который отображает диагностику, включая прохождение диагностики, в Terse и отображает диагностику, которая регистрируется в Detailed уровень или ниже. Добавьте его в питатель и перезапустите тесты.

runner = TestRunner.withNoPlugins();
plugin = DiagnosticsOutputPlugin('OutputDetail',Verbosity.Terse, ...
    'LoggingLevel',3,'IncludingPassingDiagnostics',true);
runner.addPlugin(plugin);
result = runner.run(suite);
[Detailed] Diagnostic logged (2018-04-13 13:47:34): Testing failing event

FAIL: ExampleDiagOutputTest/testOne in ExampleDiagOutputTest.testOne at 6 :: verifyEqual failed.

[Detailed] Diagnostic logged (2018-04-13 13:47:34): Testing passing event

PASS: ExampleDiagOutputTest/testTwo in ExampleDiagOutputTest.testTwo at 10 :: verifyTrue passed.
Введенный в R2018b