log

Класс: фиксатор
Пакет: 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