Класс: matlab.unittest.plugins. TestReportPlugin
Пакет: matlab.unittest.plugins
Создает плагин, который производит .docx
отчет
matlab.unittest.plugins.TestReportPlugin.producingDOCX
создает плагин, который создает .docx
отчет о результатах тестирования во временной папке. Этот синтаксис эквивалентен matlab.unittest.plugins.TestReportPlugin.producingDOCX([tempname '.docx'])
.
matlab.unittest.plugins.TestReportPlugin.producingDOCX(
сохраняет отчет в файл docxFile
)docxFile
.
matlab.unittest.plugins.TestReportPlugin.producingDOCX(
создает плагин с дополнительными опциями, заданными одним или несколькими docxFile
,Name,Value
)Name,Value
аргументы в виде пар.
docxFile
- Имя протокола испытаний.docx
Имя отчета о тесте, который создает плагин, заданное как вектор символов, заканчивающийся на .docx
.
Пример: 'myReportFile.docx'
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
TestReportPlugin.producingDOCX(docxFile,'LoggingLevel',Verbosity.Detailed)
создает плагин, который включает диагностику, регистрируемую на и ниже Detailed
уровень.'PageOrientation'
- Ориентация отчета'portrait'
(по умолчанию) | 'landscape'
Ориентация отчета, заданная как 'portrait'
или 'landscape'
. По умолчанию плагин создает отчет с портретной ориентацией.
'IncludingCommandWindowText'
- Включить текст Командного окна в отчетfalse
(по умолчанию) | true
Включите текст Command Window в отчет, заданный как false
или true
. По умолчанию IncludingCommandWindowText
является false
и вывод текста из Командного окна исключается из отчета. Чтобы включить текст Command Window в отчет, задайте IncludingCommandWindowText
как true
.
Типы данных: logical
'IncludingPassingDiagnostics'
- Включите проходящую диагностику событийfalse
(по умолчанию) | true
Включите проходящую диагностику событий, заданную как false
или true
. По умолчанию IncludingPassingDiagnostics
является false
и диагностика от проходящих событий исключены из отчета. Чтобы включить диагностику от проходящих событий в отчет, задайте IncludingPassingDiagnostics
как true
.
Типы данных: logical
'LoggingLevel'
- Максимальный уровень регистрируемой диагностикиmatlab.unittest.Verbosity
перечисление | имя перечисления как строка или вектор charМаксимальный уровень, на котором регистрируемая диагностика включена в образец плагина, заданный как целое значение от 0 до 4, a 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)
способ.
.docx
ФорматСоздайте тестовый набор из двух тестовых файлов, запустите набор и сгенерируйте .docx
отчет о результатах.
Создайте новый файл в рабочей папке с именем 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.docx
.
runner = TestRunner.withNoPlugins;
docxFile = 'MyTestReport.docx';
plugin = TestReportPlugin.producingDOCX(docxFile);
Добавьте плагин к 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.docx result = 1×284 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 282 Passed, 2 Failed, 2 Incomplete. 0.73477 seconds testing time.
Откройте отчет о тестировании.
open(docxFile)
.docx
Отчет, который включает в себя передачу диагностикиСоздайте тестовый набор из основанного на функции теста, запустите набор и сгенерируйте отчет о результатах. Включите передачу диагностики и вывода текста в Командное окно.
Создайте новый файл в рабочей папке с именем 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.docx
. Включите в отчет прохождение диагностики и вывода текста из Командного окна.
docxFile = 'MyTestReport2.docx'; plugin = TestReportPlugin.producingDOCX(docxFile,... '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.docx
Откройте отчет о тестировании.
open(docxFile)
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.