exponenta event banner

регистрация

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

Запись диагностической информации при настройке и отрыве приспособления

Синтаксис

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

Описание

log(f,diagnostic) регистрирует предоставленную диагностику. Метод log позволяет тестам регистрировать информацию во время настройки приспособления и процедур отрыва. В среде тестирования регистрируемые сообщения отображаются только в том случае, если для этого необходимо добавить соответствующий подключаемый модуль, например, 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