exponenta event banner

matlab.unittest.plugins. TestReportPlugin.producingPDF

Класс: matlab.unittest.plugins.
Пакет: 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'. По умолчанию плагин создает отчет с портретной ориентацией.

Включить текст окна команд в отчет, указанный как false или true. По умолчанию IncludingCommandWindowText является false и вывод текста из окна команд исключается из отчета. Чтобы включить текст окна команд в отчет, укажите 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