matlab.unittest.plugins. Класс DiagnosticsOutputPlugin

Пакет: matlab.unittest.plugins

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

Описание

Класс 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

Типы данных: логический

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

Типы данных: логический

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

Числовое представлениеИмя элемента перечисленияОписание многословия
0None

Никакая информация

1Terse

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

2Concise

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

3Detailed

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

4Verbose

Большая дополнительная информация

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

Регистрируемая диагностика является диагностикой, которую вы предоставляете к среде тестирования вызов метода Fixture.log или TestCase.log.

Уровень детализации для событий, о которых сообщают, заданных как целочисленное значение от 0 до 4, объект перечисления 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. Можно задать различный уровень журналирования во время сменной конструкции.

Регистрируемая диагностика является диагностикой, которую вы предоставляете к среде тестирования вызов метода Fixture.log или TestCase.log.

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

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

Примеры

свернуть все

Создайте файл 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