matlab.unittest.plugins.

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

Плагин построений, который представляет отчет .pdf

Синтаксис

matlab.unittest.plugins.TestReportPlugin.producingPDF
matlab.unittest.plugins.TestReportPlugin.producingPDF(pdfFile)
matlab.unittest.plugins.TestReportPlugin.producingPDF(pdfFile,Name,Value)

Описание

пример

matlab.unittest.plugins.TestReportPlugin.producingPDF создает плагин, который представляет отчет PDF результатов испытаний во временной папке. Этот синтаксис эквивалентен matlab.unittest.plugins.TestReportPlugin.producingPDF([tempname '.pdf']).

matlab.unittest.plugins.TestReportPlugin.producingPDF(pdfFile) сохраняет отчет в файл pdfFile.

пример

matlab.unittest.plugins.TestReportPlugin.producingPDF(pdfFile,Name,Value) создает плагин с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

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

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

Имя протокола испытаний, что плагин создает, заданный как вектор символов, заканчивающийся в .pdf.

Пример: pdfFile = 'myReportFile.pdf'

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: TestReportPlugin.producingPDF(pdfFile,'PageOrientation','landscape') создает плагин, который генерирует отчет в альбомной ориентации.

Сообщите об ориентации, заданной как 'portrait' или 'landscape'. По умолчанию плагин представляет отчет с портретной ориентацией.

Включайте текст Command Window в отчет, заданный как false или true. По умолчанию IncludingCommandWindowText является false, и вывод текста из Командного окна исключен из отчета. Чтобы включать текст Command Window в отчет, задайте IncludingCommandWindowText как true.

Типы данных: логический

Включайте передающую диагностику события, заданную как false или true. По умолчанию IncludingPassingDiagnostics является false, и диагностика от передающих событий исключена из отчета. Чтобы включать диагностику от передающих событий в отчете, задайте IncludingPassingDiagnostics как true.

Типы данных: логический

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

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

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

1Terse

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

2Concise

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

3Detailed

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

4Verbose

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

По умолчанию плагин включает диагностику, регистрируемую в уровень matlab.unittest.Verbosity.Terse (уровень 1). Чтобы исключить регистрируемую диагностику, задайте LoggingLevel как Verbosity.None (уровень 0).

Регистрируемая диагностика является диагностикой, которую вы предоставляете к среде тестирования вызов метода Fixture.log или TestCase.log.

Примеры

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

Создайте тестовый набор из двух тестовых файлов, запустите комплект и сгенерируйте отчет .pdf результатов.

Создайте новый файл в своей рабочей папке под названием ScriptBasedTest.m , содержащий следующий тестовый скрипт. Скрипт включает два сбоя и неполные тесты.

%% Test double class
expSolution = 'double';
actSolution = ones;
assert(isa(actSolution,expSolution))

%% Test single class
expSolution = 'single';
actSolution = ones('single');
assert(isa(actSolution,expSolution))

%% Test uint16 class
expSolution = 'uint16';
actSolution = ones('uint16');
assert(isa(actSolution,expSolution))

%% Test that fails
assert(false==true);

%% Another test that fails
assert(strcmp('correlation','causation'))

Создайте файл с именем ClassBasedTest.m , содержащий следующий тестовый класс. Класс включает провальный тест, который, с параметризацией, приводит к девяти не пройдено результатам испытаний.

classdef ClassBasedTest < matlab.unittest.TestCase
    properties (ClassSetupParameter)
        generator = {'twister','combRecursive','multFibonacci'};
    end
    properties (MethodSetupParameter)
        seed = {0,123,4294967295};
    end
    properties (TestParameter)
        dim1 = struct('small',1,'medium',2,'large',3);
        dim2 = struct('small',2,'medium',3,'large',4);
        dim3 = struct('small',3,'medium',4,'large',5);
        type = {'single','double'};
    end
    methods (TestClassSetup)
        function ClassSetup(testCase,generator)
            orig = rng;
            testCase.addTeardown(@rng,orig)
            rng(0, generator)
        end
    end
    methods (TestMethodSetup)
        function MethodSetup(testCase,seed)
            orig = rng;
            testCase.addTeardown(@rng,orig)
            rng(seed)
        end
    end
    methods (Test, ParameterCombination='sequential')
        function testSize(testCase,dim1,dim2,dim3)
            testCase.verifySize(rand(dim1,dim2,dim3),[dim1 dim2 dim3])
        end 
    end
    methods (Test, ParameterCombination='pairwise')
        function testRepeatable(testCase,dim1,dim2,dim3)
            state = rng;
            firstRun = rand(dim1,dim2,dim3);
            rng(state)
            secondRun = rand(dim1,dim2,dim3);
            testCase.verifyEqual(firstRun,secondRun);
        end
    end
    methods (Test)
        function testClass(testCase,dim1,dim2,type)
            testCase.verifyClass(rand(dim1,dim2,type),type)
        end
    end
end

В командной строке создайте тестовый набор из обоих тестовых файлов.

import matlab.unittest.TestRunner;
import matlab.unittest.TestSuite;
import matlab.unittest.plugins.TestReportPlugin;

suite = testsuite({'ScriptBasedTest','ClassBasedTest'})
suite = 

  1×284 Test array with properties:

    Name
    ProcedureName
    TestClass
    BaseFolder
    Parameterization
    SharedTestFixtures
    Tags

Tests Include:
   17 Unique Parameterizations, 0 Shared Test Fixture Classes, 0 Tags..

Создайте тихого исполнителя тестов, так, чтобы не было никакого вывода информации к командному окну. Создайте TestReportPlugin, который отправляет вывод в файл MyTestReport.pdf.

runner = TestRunner.withNoPlugins;
pdfFile = 'MyTestReport.pdf';
plugin = TestReportPlugin.producingPDF(pdfFile);

Добавьте плагин в TestRunner и запустите комплект.

runner.addPlugin(plugin);
result = runner.run(suite)
Generating report. Please wait.
    Preparing content for the report.
    Adding content to the report.
    Writing report to file.
Report has been saved to: C:\work\MyTestReport.pdf

result = 

  1×284 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   282 Passed, 2 Failed, 2 Incomplete.
   2.2054 seconds testing time.

Откройте протокол испытаний.

open(pdfFile)

Создайте тестовый набор из функционального теста, запустите комплект и сгенерируйте отчет результатов. Включайте передающую диагностику и вывод текста к Командному окну.

Создайте новый файл в своей рабочей папке под названием FunctionBasedTest.m , содержащий следующий функциональный тест. Тестовый файл включает два проваливающих теста.

%% Main function to generate tests
function tests = FunctionBasedTest
tests = functiontests(localfunctions);
end

%% Test Functions
function passingTest(testCase)
actSolution = 13*3+7*5;
expSolution = 74;
verifyEqual(testCase,actSolution,expSolution)
end

function failingTest(testCase)
actSolution = single(1);
verifyTrue(testCase,actSolution)
end

function anotherPassingTest(testCase)
verifyClass(testCase,string('some text'),'string')
end

function anotherFailingTest(testCase)
verifyTrue(testCase,strcmp('42','everything'))
end

В командной строке создайте тестовый набор из FunctionBasedTest.m. Создайте исполнителя тестов, который отображает вывод к командному окну с помощью плагина по умолчанию.

import matlab.unittest.TestRunner;
import matlab.unittest.TestSuite;
import matlab.unittest.plugins.TestReportPlugin;

suite = testsuite('FunctionBasedTest');
runner = TestRunner.withTextOutput;

Создайте TestReportPlugin, который отправляет вывод в файл MyTestReport2.pdf. Включайте передающую диагностику и вывод текста из Командного окна в отчете.

pdfFile = 'MyTestReport2.pdf';
plugin = TestReportPlugin.producingPDF(pdfFile,...
    'IncludingPassingDiagnostics',true,'IncludingCommandWindowText',true);

Добавьте плагин в TestRunner и запустите комплект.

runner.addPlugin(plugin);
result = runner.run(suite);
Running FunctionBasedTest
.
================================================================================
Verification failed in FunctionBasedTest/failingTest.

    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyTrue failed.
    --> The value must be logical. It is of type "single".
    
    Actual single:
             1

    ------------------
    Stack Information:
    ------------------
    In C:\Work\FunctionBasedTest.m (failingTest) at 15
================================================================================
..
================================================================================
Verification failed in FunctionBasedTest/anotherFailingTest.

    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyTrue failed.
    --> The value must evaluate to "true".
    
    Actual logical:
           0

    ------------------
    Stack Information:
    ------------------
    In C:\Work\FunctionBasedTest.m (anotherFailingTest) at 23
================================================================================
.
Done FunctionBasedTest
__________

Failure Summary:

     Name                                  Failed  Incomplete  Reason(s)
    ===================================================================================
     FunctionBasedTest/failingTest           X                 Failed by verification.
    -----------------------------------------------------------------------------------
     FunctionBasedTest/anotherFailingTest    X                 Failed by verification.
    
Generating report. Please wait.
    Preparing content for the report.
    Adding content to the report.
    Writing report to file.
Report has been saved to: C:\Work\MyTestReport2.pdf

Откройте протокол испытаний.

open(pdfFile)

Советы

  • Протоколы испытаний PDF сгенерированы на основе вашей системной локали и семейств шрифтов, установленных на вашей машине. При генерации отчета с неанглийской локалью, если машина не имеет Ното Без установленных семейств шрифтов CJK, отчет может иметь символы знака фунта (#) вместо китайского языка, японского языка и корейских символов.

Введенный в R2017b

Для просмотра документации необходимо авторизоваться на сайте