Класс: matlab.unittest.plugins.
Пакет: matlab.unittest.plugins
Плагин построений, который представляет отчет .html
matlab.unittest.plugins.TestReportPlugin.producingHTML
matlab.unittest.plugins.TestReportPlugin.producingHTML(htmlFolder)
matlab.unittest.plugins.TestReportPlugin.producingHTML(___,Name,Value)
matlab.unittest.plugins.TestReportPlugin.producingHTML
создает плагин, который представляет отчет .html
результатов испытаний во временной папке. В той папке основным файлом отчета является index.html
. Если вы повторно выполняете тестовый набор с этим плагином, то MATLAB® перезаписывает содержимое в папке.
Этот синтаксис эквивалентен matlab.unittest.plugins.TestReportPlugin.producingHTML(tempname)
.
matlab.unittest.plugins.TestReportPlugin.producingHTML(
сохраняет отчет в папку htmlFolder
)htmlFolder
.
matlab.unittest.plugins.TestReportPlugin.producingHTML(___,
создает плагин с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value
)Name,Value
. Можно использовать этот синтаксис с любым из аргументов от предыдущих синтаксисов.
htmlFolder
— OutputВыведите папку, заданную как вектор символов, или представьте скаляр в виде строки. htmlFolder
может быть относительным или абсолютным путем. По умолчанию, в папке, основным файлом отчета является index.html
. Чтобы изменить название основного файла, используйте аргумент пары "имя-значение" 'MainFile'
.
Пример: 'TestRunOutput'
Пример: 'C:\myWork\testResults'
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
TestReportPlugin.producingHTML('myTestOutput','MainFile','main.html')
создает плагин, что выходные параметры заканчиваются к папке myTestOutput
с основным файлом с именем main.html
вместо index.html
.MainFile
Основное имя файлаОсновное имя файла HTML
, заданное как вектор символов или скаляр строки.
Пример: 'main.html'
'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).
Регистрируемая диагностика является диагностикой, которую вы предоставляете к среде тестирования вызов метода Fixture.log
или TestCase.log
.
Генерация отчета результата испытаний в .html формате
Создайте тестовый набор из двух тестовых файлов, запустите комплект и сгенерируйте отчет .html
результатов.
Создайте новый файл в своей рабочей папке под названием 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
, который генерирует протокол испытаний .html
в папке под названием myResults
.
runner = TestRunner.withNoPlugins;
htmlFolder = 'myResults';
plugin = TestReportPlugin.producingHTML(htmlFolder);
Добавьте плагин в 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\myResults\index.html result = 1×284 TestResult array with properties: Name Passed Failed Incomplete Duration Details Totals: 282 Passed, 2 Failed, 2 Incomplete. 1.6712 seconds testing time.
Откройте протокол испытаний путем нажатия на имя сохраненного файла. В этом примере именем файла является C:\work\myResults\index.html
.
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.