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, поток)
matlab.unittest.plugins. LoggingPlugin.withVerbosity (v, Имя, Значение)

Описание

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

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

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

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

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

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

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

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

1Terse

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

2Concise

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

3Detailed

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

4Verbose

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 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

Была ли эта тема полезной?