log

Класс: matlab.unittest.fixtures.Fixture
Пакет: matlab.unittest.fixtures

Запишите диагностическую информацию

Синтаксис

log(f,diagnostic)
log(f,v,diagnostic)

Описание

log(f,diagnostic) регистрирует предоставленную диагностику. Логарифмический метод обеспечивает средние значения для тестов, чтобы регистрировать информацию во время настройки фиксатора и стандартных программ отключения. Отображения среды тестирования регистрировали сообщения, только если вы конфигурируете его, чтобы сделать так путем добавления соответствующего плагина, такого как matlab.unittest.plugins.LoggingPlugin.

log(f,v,diagnostic) регистрирует диагностику на заданном уровне многословия, v.

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

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

Экземпляр фиксатора, заданного как matlab.unittest.fixtures.Fixture.

Диагностическая информация, чтобы отобразиться после отказа, заданного как строка, вектор символов, указатель на функцию или matlab.unittest.diagnostics.Diagnostic экземпляр.

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

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

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

2Concise

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

3Detailed

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

4Verbose

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

Примеры

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

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

classdef FormatHexFixture < matlab.unittest.fixtures.Fixture
    properties (Access=private)
        OriginalFormat
    end
    methods
        function setup(fixture)
            fixture.OriginalFormat = get(0,'Format');
            fixture.log(['The previous format setting was ',...
                fixture.OriginalFormat])
            log(fixture,'Setting Format')
            set(0,'Format','hex')
            log(fixture,3,'Format Set')
        end
        function teardown(fixture)
            log(fixture,'Resetting Format')
            set(0,'Format',fixture.OriginalFormat)
            log(fixture,3,'Original Format Restored')
        end
    end
end

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

classdef SampleTest < matlab.unittest.TestCase
    methods (Test)
        function test1(testCase)
            testCase.applyFixture(FormatHexFixture);
            actStr = getColumnForDisplay([1;2;3], 'Small Integers');
            expStr = ['Small Integers  '
                '3ff0000000000000'
                '4000000000000000'
                '4008000000000000'];
            testCase.verifyEqual(actStr, expStr)
        end
    end
end

function str = getColumnForDisplay(values, title)
elements = cell(numel(values)+1, 1);
elements{1} = title;
for idx = 1:numel(values)
    elements{idx+1} = displayNumber(values(idx));
end
str = char(elements);
end

function str = displayNumber(n)
str = strtrim(evalc('disp(n);'));
end

Запустите тест.

result = run(SampleTest);
Running SampleTest
.
Done SampleTest
__________

Ни одно из регистрируемых сообщений не отображено, потому что исполнитель тестов по умолчанию имеет уровень многословия 1 (Terse) и логарифмическое сообщение по умолчанию на уровне 2 (Concise).

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

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

ts = matlab.unittest.TestSuite.fromClass(?SampleTest);
runner = TestRunner.withNoPlugins;
p = LoggingPlugin.withVerbosity(3);
runner.addPlugin(p);

results = runner.run(ts);
 [Concise] Diagnostic logged (2014-04-23T13:17:35): The previous format setting was short
 [Concise] Diagnostic logged (2014-04-23T13:17:35): Setting Format
[Detailed] Diagnostic logged (2014-04-23T13:17:35): Format Set
 [Concise] Diagnostic logged (2014-04-23T13:17:35): Resetting Format
[Detailed] Diagnostic logged (2014-04-23T13:17:35): Original Format Restored

Введенный в R2014b