журнал

Класс: matlab.unittest.fixtures. Фиксатор
Пакет: matlab.unittest.fixtures

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

Синтаксис

журнал (f, диагностика)
журнал (f, v, диагностика)

Описание

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

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

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

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

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

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

Уровень многословия, заданный как целочисленное значение между 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

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