matlab.unittest.plugins.LoggingPlugin.withVerbosity

Класс: matlab.unittest.plugins.LoggingPlugin
Пакет: matlab.unittest.plugins

Создайте LoggingPlugin для сообщений заданной подробности

Синтаксис

matlab.unittest.plugins.LoggingPlugin.withVerbosity(v)
matlab.unittest.plugins.LoggingPlugin.withVerbosity(v,stream)
matlab.unittest.plugins.LoggingPlugin.withVerbosity(v,Name,Value)

Описание

matlab.unittest.plugins.LoggingPlugin.withVerbosity(v) создает LoggingPlugin для сообщений заданной подробности.

matlab.unittest.plugins.LoggingPlugin.withVerbosity(v,stream) перенаправляет вывод текста в выход поток.

matlab.unittest.plugins.LoggingPlugin.withVerbosity(v,Name,Value) включает дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар.

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

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

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

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

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

1Terse

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

2Concise

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

3Detailed

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

4Verbose

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

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

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

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

Описание записанного диагностического сообщения, заданное как вектор символов или строковый скаляр. Это значение печатается вместе с каждым зарегистрированным диагностическим сообщением. Если значение пусто, тестовая среда не отображает описание.

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

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

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

Количество систем координат стека для отображения после каждого зарегистрированного диагностического сообщения, заданное в виде целого значения. По умолчанию значение 0и среда тестирования не отображает информацию о стеке. Если NumStackFrames является Inf, в среду тестирования отображаются все доступные системы координат стека.

Примеры

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

Создайте функциональный тест в файле, sampleLogTest.m, в рабочей папке.

function tests = sampleLogTest
tests = functiontests(localfunctions);

function svdTest(testCase)
import matlab.unittest.Verbosity

log(testCase,'Generating matrix.');
m = rand(1000);

log(testCase,1,'About to call SVD.');
[U,S,V] = svd(m);

log(testCase,Verbosity.Terse,'SVD finished.');

verifyEqual(testCase,U*S*V',m,'AbsTol',1e-6)

В командной строке запустите тест.

results = run(sampleLogTest);
Running sampleLogTest
   [Terse] Diagnostic logged (2014-04-14T14:20:59): About to call SVD.
   [Terse] Diagnostic logged (2014-04-14T14:20:59): SVD finished.
.
Done sampleLogTest
__________

Питатель по умолчанию сообщает диагностику на уровне 1 (Terse).

Создайте исполнителя тестов, чтобы сообщить о диагностике на уровнях 1 и 2, и повторите тест.

import matlab.unittest.TestRunner
import matlab.unittest.plugins.LoggingPlugin

runner = TestRunner.withNoPlugins;
p = LoggingPlugin.withVerbosity(2);
runner.addPlugin(p);

results = runner.run(sampleLogTest);
 [Concise] Diagnostic logged (2014-04-14T14:28:14): Generating matrix.
   [Terse] Diagnostic logged (2014-04-14T14:28:14): About to call SVD.
   [Terse] Diagnostic logged (2014-04-14T14:28:15): SVD finished.

Создайте следующий класс В файле в текущей рабочей папке, ExampleLogTest.m.

classdef ExampleLogTest < matlab.unittest.TestCase
    methods(Test)
        function testOne(testCase)  % Test fails
            log(testCase,3,'Starting Test')
            log(testCase,'Testing 5==4')
            testCase.verifyEqual(5,4)
            log(testCase,4,'Test Complete')
        end
        function testTwo(testCase)  % Test passes
            log(testCase,matlab.unittest.Verbosity.Detailed,'Starting Test')
            log(testCase,'Testing 5==5')
            testCase.verifyEqual(5,5)
            log(testCase,matlab.unittest.Verbosity.Verbose,'Test Complete')
        end
    end
end

Сообщения журнала в testTwo использует Verbosity перечисления вместо соответствующих целых чисел.

В командной строке создайте тестовый набор и питатель на уровне подробностей 4, а затем запустите тест.

import matlab.unittest.TestSuite
import matlab.unittest.TestRunner
import matlab.unittest.plugins.LoggingPlugin
suite   = TestSuite.fromClass(?ExampleLogTest);

runner = TestRunner.withNoPlugins;
p = LoggingPlugin.withVerbosity(4);
runner.addPlugin(p);

results = runner.run(suite);
[Detailed] Diagnostic logged (2014-04-14T15:24:03): Starting Test
 [Concise] Diagnostic logged (2014-04-14T15:24:03): Testing 5==4
 [Verbose] Diagnostic logged (2014-04-14T15:24:03): Test Complete
[Detailed] Diagnostic logged (2014-04-14T15:24:03): Starting Test
 [Concise] Diagnostic logged (2014-04-14T15:24:03): Testing 5==5
 [Verbose] Diagnostic logged (2014-04-14T15:24:03): Test Complete

Создайте новый плагин, чтобы направить выход в файл, myOutput.log, и повторите тесты.

import matlab.unittest.plugins.ToFile
outFile = 'myOutput.log';

runner = TestRunner.withNoPlugins;
p = LoggingPlugin.withVerbosity(4,ToFile(outFile));
runner.addPlugin(p);

results = runner.run(suite);

Наблюдайте содержимое файла, созданного плагином.

disp(fileread(outFile))
[Detailed] Diagnostic logged (2014-04-14T15:27:44): Starting Test
 [Concise] Diagnostic logged (2014-04-14T15:27:44): Testing 5==4
 [Verbose] Diagnostic logged (2014-04-14T15:27:44): Test Complete
[Detailed] Diagnostic logged (2014-04-14T15:27:44): Starting Test
 [Concise] Diagnostic logged (2014-04-14T15:27:44): Testing 5==5
 [Verbose] Diagnostic logged (2014-04-14T15:27:44): Test Complete

Создайте новый плагин, который не отображает сообщения 4 уровня. Не отображать уровень подробностей или временную метку. Повторите тесты.

runner = TestRunner.withNoPlugins;
p = LoggingPlugin.withVerbosity(matlab.unittest.Verbosity.Detailed,...
    'HideLevel',true,'HideTimestamp',true);
runner.addPlugin(p);

results = runner.run(suite);
Diagnostic logged: Starting Test
Diagnostic logged: Testing 5==4
Diagnostic logged: Starting Test
Diagnostic logged: Testing 5==5
Введенный в R2014b