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
对组参数指定其他选项。
输入参数
pdfFile
— 测试报告的名称
以 .pdf
结尾的字符向量
插件创建的测试报告的名称,指定为以 .pdf
结尾的字符向量。
示例: pdfFile = 'myReportFile.pdf'
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: TestReportPlugin.producingPDF(pdfFile,'PageOrientation','landscape')
创建一个插件,它生成横向方向的报告。
PageOrientation
— 报告方向
'portrait'
(默认) | 'landscape'
报告方向,指定为 'portrait'
或 'landscape'
。默认情况下,该插件会生成一个纵向方向的报告。
IncludingCommandWindowText
— 在报告中包含命令行窗口文本
false
(默认) | true
在报告中包含命令行窗口文本,指定为 false
或 true
。默认情况下,IncludingCommandWindowText
为 false
,即不在报告中包含命令行窗口的文本输出。要在报告中包含命令行窗口文本,请将 IncludingCommandWindowText
指定为 true
。
数据类型: logical
IncludingPassingDiagnostics
— 包含通过事件诊断信息
false
(默认) | true
包含通过事件诊断信息,指定为 false
或 true
。默认情况下,IncludingPassingDiagnostics
为 false
,即不在报告中包含通过事件的诊断信息。要在报告中包含通过事件的诊断信息,请将 IncludingPassingDiagnostics
指定为 true
。
数据类型: logical
LoggingLevel
— 记录诊断信息的最高级别
1 (默认) | 0 | 2 | 3 | 4 | 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..
创建一个静默测试运行程序,从而不在命令行窗口输出任何信息。创建一个将输出发送到文件 MyTestReport.pdf
的 TestReportPlugin
。
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;
创建一个将输出发送到文件 MyTestReport2.pdf
的 TestReportPlugin
。在报告中包含通过诊断信息和命令行窗口的文本输出。
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 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)