Класс: 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 парные аргументы.
pdfFile — Имя протокола испытаний.pdfИмя протокола испытаний, что плагин создает в виде вектора символов, заканчивающегося в .pdf.
Пример: pdfFile = 'myReportFile.pdf'
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
TestReportPlugin.producingPDF(pdfFile,'PageOrientation','landscape') создает плагин, который генерирует отчет в альбомной ориентации.PageOrientation — Сообщите об ориентации'portrait' (значение по умолчанию) | 'landscape'Сообщите об ориентации в виде 'portrait' или 'landscape'. По умолчанию плагин представляет отчет с портретной ориентацией.
IncludingCommandWindowText — Включайте текст Command Window в отчетfalse (значение по умолчанию) | trueВключайте текст Command Window в отчет в виде false или true. По умолчанию, IncludingCommandWindowText false и вывод текста из Командного окна исключен из отчета. Чтобы включать текст Command Window в отчет, задайте IncludingCommandWindowText как true.
Типы данных: логический
IncludingPassingDiagnostics — Включайте передающую диагностику событияfalse (значение по умолчанию) | trueВключайте передающую диагностику события в виде false или true. По умолчанию, IncludingPassingDiagnostics false и диагностика от передающих событий исключена из отчета. Чтобы включать диагностику от передающих событий в отчете, задайте IncludingPassingDiagnostics как true.
Типы данных: логический
LoggingLevel — Максимальный уровень регистрируемой диагностикиmatlab.unittest.Verbosity перечисление | имя перечисления как строка или символьный векторМаксимальный уровень, в который регистрируемая диагностика включена сменным экземпляром в виде целочисленного значения от 0 до 4, matlab.unittest.Verbosity объект перечисления, или строковый скаляр или вектор символов, соответствующий одному из предопределенных имен элемента перечисления. Плагин включает диагностику, которая регистрируется на этом уровне и ниже. Целочисленные значения соответствуют членам matlab.unittest.Verbosity перечисление.
| Числовое представление | Имя элемента перечисления | Описание многословия |
|---|---|---|
0 | None | Никакая информация |
1 | Terse | Минимальная информация |
2 | Concise | Умеренный объем информации |
3 | Detailed | Некоторая дополнительная информация |
4 | Verbose | Большая дополнительная информация |
По умолчанию плагин включает диагностику, регистрируемую в matlab.unittest.Verbosity.Terse уровень (уровень 1). Чтобы исключить регистрируемую диагностику, задайте LoggingLevel как Verbosity.None (уровень 0).
Регистрируемая диагностика является диагностикой, которую вы предоставляете к среде тестирования вызов log (TestCase) или log (Fixture) метод.
.pdf ФорматСоздайте тестовый набор из двух тестовых файлов, запустите набор и сгенерируйте .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)
.pdf Сообщите, что это включает передающую диагностикуСоздайте тестовый набор из функционального теста, запустите набор и сгенерируйте отчет результатов. Включайте передающую диагностику и вывод текста к Командному окну.
Создайте новый файл в своей рабочей папке под названием 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, отчет может иметь символы знака фунта (#) вместо китайского языка, японского языка и корейских символов.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.