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, 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 isinf, среда тестирования отображает все доступные стековые фреймы.

Примеры

развернуть все

Создайте функциональный тест в файле, 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