matlab.unittest.plugins.TestReportPlugin.producingPDF

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

Создает плагин, который производит .pdf отчет

Описание

пример

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 - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

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

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

Типы данных: logical

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

Типы данных: logical

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

Числовое представлениеИмя представителя перечисленияПодробное описание
0None

Нет информации

1Terse

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

2Concise

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

3Detailed

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

4Verbose

Много дополнительной информации

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

Зарегистрированная диагностика - это диагностика, которую вы поставляете в среду тестирования с вызовом log (TestCase) или log (Fixture) способ.

Примеры

расширить все

Создайте тестовый набор из двух тестовых файлов, запустите набор и сгенерируйте .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 генерируются на основе локали системы и семейства шрифтов, установленных на компьютере. При создании отчета с неанглийской локалью, если на вашем компьютере не установлены семейства шрифтов Noto Sans CJK, вместо символов китайского, японского и корейского языков в отчете могут быть символы знака фунта (#).

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