主要内容

matlab.unittest.plugins.TestReportPlugin类

包:matlab.unittest.plugins

生成测试结果报告的插件

描述

TestReportPlugin创建一个插件来指导TestRunner生成测试结果报告。使用这个插件,您可以生成可读和存档的测试报告。

建设

实例化一个TestReportPlugin使用它的一个静态方法:

  • 产生一个。docx报告中,使用producingDOCX静态方法。

  • 产生一个. html报告中,使用producingHTML静态方法。

  • 产生一个PDF报告中,使用producingPDF静态方法。

属性

全部展开

此属性是只读的。

指示符,如果包含命令窗口的文本输出,指定为真正的逻辑0或1)。默认情况下,IncludeCommandWindowText命令窗口的文本输出将从报告中排除。要在报告中包含命令窗口文本,请指定IncludeCommandWindowText作为真正的在插件结构。

此属性是只读的。

指示符是否包含传递事件的诊断,指定为真正的逻辑0或1)。默认情况下,IncludePassingDiagnostics而来自传递事件的诊断则从输出中排除。要在输出中包含来自传递事件的诊断,请指定IncludePassingDiagnostics作为真正的在插件结构。

此属性是只读的。

插件包含的日志诊断的最大详细级别,返回为matlab.unittest.Verbosity枚举对象。该插件包括在此级别及以下记录的诊断。默认情况下,此属性值为matlab.unittest.Verbosity.Terse.您可以在插件构建期间指定一个不同的日志级别。

日志诊断是通过调用日志(TestCase)日志(夹具)方法。

方法

producingDOCX 构造插件,生成。docx报告
producingHTML 构造插件,生成. html报告
producingPDF 构造插件,生成. pdf报告

复制语义

句柄。要了解句柄类如何影响复制操作,请参见复制对象

例子

全部折叠

从两个测试文件创建一个测试套件,运行该套件,并生成一个。docx报告结果。

在工作文件夹中创建一个名为ScriptBasedTest.m包含以下测试脚本。该脚本包括两个失败的和未完成的测试。

%%双级测试expSolution =“双”;actSolution = 1;断言(isa (actSolution, expSolution))%%测试单个类expSolution =“单一”;actSolution = (“单一”);断言(isa (actSolution, expSolution))%% Test uint16 classexpSolution =“uint16”;actSolution = (“uint16”);断言(isa (actSolution, expSolution))%%测试失败断言(错误= = true);%%另一个测试失败断言(strcmp (“相关”“因果关系”))

创建一个名为ClassBasedTest.m包含以下测试类。

classdefClassBasedTest < matlab.unittest.TestCase属性(ClassSetupParameter)生成器= {“旋风”“combRecursive”“multFibonacci”};结束属性(MethodSetupParameter) seed = {0,123,4294967295};结束属性(TestParameter) dim1 = struct(“小”, 1“媒介”2,“大”3);dim2 =结构(“小”2,“媒介”,3,“大”4);dim3 =结构(“小”,3,“媒介”,4,“大”5);类型= {“单一”“双”};结束方法(TestClassSetup)函数ClassSetup(testCase,generator) orig = rng;testCase.addTeardown (@rng源自)rng(0,发电机)结束结束方法(TestMethodSetup)函数MethodSetup(testCase,seed) origin = rng;testCase.addTeardown (@rng源自)rng(种子)结束结束方法(测试,ParameterCombination =“顺序”函数testCase. verifysize (rand(dim1,dim2,dim3),[dim1 dim2 dim3])使用实例结束结束方法(测试,ParameterCombination =“成对”函数teststrepeatable (testCase,dim1,dim2,dim3) state = rng;firstRun =兰德(dim1 dim2 dim3);rng(state) secondRun = rand(dim1,dim2,dim3); / /运行状态testCase.verifyEqual (firstRun secondRun);结束结束方法(测试)函数testClass (testCase dim1、dim2类型)testCase.verifyClass(兰德(dim1、dim2类型),类型)结束结束结束

在命令提示符处,从两个测试文件创建一个测试套件。

进口matlab.unittest.TestRunner;进口matlab.unittest.TestSuite;进口matlab.unittest.plugins.TestReportPlugin;套件= testsuite ({“ScriptBasedTest”“ClassBasedTest”})
suite = 1×284带有属性的测试数组:Name ProcedureName TestClass BaseFolder Parameterization SharedTestFixtures Tags Tests Include: 17 Unique Parameterizations, 0 SharedTestFixture Classes, 0 Tags

创建一个静默的测试运行器,这样就不会有信息输出到命令窗口。创建一个TestReportPlugin它将输出发送到文件MyTestReport.docx

跑步者= TestRunner.withNoPlugins;docxFile =“MyTestReport.docx”;插件= TestReportPlugin.producingDOCX (docxFile);

将插件添加到TestRunner然后运行套房。

runner.addPlugin(插件);结果= runner.run(套房)
生成报告。请稍等。准备报告内容。向报告中添加内容。撰写报告存档。报告已经保存到:C:\work\MyTestReport.docx result = 1×284 TestResult数组,属性为:Name Passed Failed Incomplete Duration Details总计:282 Passed, 2 Failed, 2 Incomplete. 0.73477秒测试时间。

打开测试报告。

打开(docxFile)

从基于功能的测试创建测试套件,运行该套件,并生成结果报告。包括向命令窗口传递诊断信息和文本输出。

在工作文件夹中创建一个名为FunctionBasedTest.m包含以下基于函数的测试。测试文件包括两个失败的测试。

%%生成测试的主要函数函数测试= FunctionBasedTest测试= functiontests(localfunctions);结束% %测试函数函数通过测试的actSolution = 13*3+7*5;expSolution = 74;verifyEqual (testCase actSolution expSolution)结束函数failingTest(testCase) actSolution = single(1);verifyTrue (testCase actSolution)结束函数anotherPassingTest (testCase) verifyClass (testCase,字符串(“一些文本”),“字符串”结束函数anotherFailingTest (testCase) verifyTrue (testCase, strcmp (“42”“一切”))结束

在命令提示符处,创建一个测试套件FunctionBasedTest.m.创建一个测试运行程序,使用默认插件将输出显示到命令窗口。

进口matlab.unittest.TestRunner;进口matlab.unittest.TestSuite;进口matlab.unittest.plugins.TestReportPlugin;套件= testsuite (“FunctionBasedTest”);跑步者= TestRunner.withTextOutput;

创建一个TestReportPlugin它将输出发送到文件MyTestReport2.pdf.在报告中包括从命令窗口传递诊断信息和文本输出。

pdfFile =“MyTestReport2.pdf”;插件= TestReportPlugin.producingPDF (pdfFile,...“IncludingPassingDiagnostics”,真的,“IncludingCommandWindowText”,真正的);

将插件添加到TestRunner然后运行套房。

runner.addPlugin(插件);结果= runner.run(套);
FunctionBasedTest运行。================================================================================ 验证失败FunctionBasedTest / failingTest。--------------------- 框架的诊断 : --------------------- verifyTrue失败了。——>必须为逻辑值。它的类型是“单”。实际单:1  ------------------ 堆栈信息 : ------------------ 在C: \ \ FunctionBasedTest工作。在15米(failingTest)  ================================================================================ ..================================================================================ 验证失败FunctionBasedTest / anotherFailingTest。--------------------- 框架的诊断 : --------------------- verifyTrue失败了。——>该值必须为“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

打开测试报告。

打开(pdfFile)

在当前工作文件夹中的文件中,创建FigurePropTest测试类。如果failingTest测试方法失败(在这个例子中总是这样),它使用FigureDiagnostic保存图形,以便稍后检查。

classdefFigurePropTest < matlab.unittest.TestCase属性TestFigure结束方法(TestMethodSetup)函数createFigure testCase (testCase)。TestFigure =图;结束结束方法(TestMethodTeardown)函数closeFigure (testCase)关闭(testCase.TestFigure)结束结束方法(测试)函数cp = testCase. testfigure . currentpoint;testCase。verifyEqual (cp [0 0),...'默认当前点不正确'结束函数defaultCurrentObject (testCase)导入matlab.unittest.constraints.IsEmpty有限公司= testCase.TestFigure.CurrentObject;testCase.verifyThat (co、IsEmpty...'默认当前对象应为空'结束函数failingTest (testCase)导入matlab.unittest.diagnostics.FigureDiagnostic无花果= testCase.TestFigure;ax =轴(图);冲浪(ax,山峰)testCase.verifyEmpty (testCase.TestFigure.Children,...FigureDiagnostic (testCase.TestFigure))结束结束结束

在命令提示符下,创建一个测试套件。

套件= testsuite (“FigurePropTest”);

创建一个静默的测试运行器,记录诊断并生成PDF报告。

进口matlab.unittest.plugins.DiagnosticsRecordingPlugin进口matlab.unittest.plugins.TestReportPlugin跑步者= matlab.unittest.TestRunner.withNoPlugins;runner.addPlugin (DiagnosticsRecordingPlugin);runner.addPlugin (TestReportPlugin.producingPDF (“MyTestReport.pdf”));

将默认工件根目录更改为当前工作文件夹。

跑步者。ArtifactsRootFolder = pwd;

运行测试。第三个测试失败了。

结果= runner.run(套房)
生成报告。请稍等。准备报告内容。向报告中添加内容。撰写报告存档。报告已经保存到:C:\work\MyTestReport.pdf results = 1×3 TestResult数组,属性为:Name Passed Failed Incomplete Duration Details总计:2 Passed, 1 Failed, 0 Incomplete. 1.2295秒测试时间。

显示第三个测试的测试诊断结果。测试框架保存了与第三个测试相关的两个工件。默认情况下,FigureDiagnostic对象将图形保存为PNG文件和FIG文件。

(3) .Details.DiagnosticRecord.TestDiagnosticResults结果
[1×2 matlab.unittest.diagnostics. properties:C:\work\715b5416-5c52-4a53- bbecl -837a5db57392\Figure_284d9501-2121-45a1-bf5c-18904ce11e8f。无花果↵——> C: \ \工作b5416 - 5 - 715 c52 - 4 - a53 bbec - 837 a5db57392 \ figure_284d9501 - 2121 - 45 - a1 - bf5c - 18904 - ce11e8f.png”

显示第一个工件的存储位置。

(3)结果.Details.DiagnosticRecord.TestDiagnosticResults.Artifacts (1)
名称:"Figure_284d9501-2121-45a1-bf5c-18904ce11e8f. "图"位置:"C:\work\715b5416-5c52-4a53-bbec-837a5db57392" FullPath: "C:\work\715b5416-5c52-4a53-bbec-837a5db57392\Figure_284d9501-2121-45a1-bf5c-18904ce11e8f.fig"

要检查与失败的测试相关的映像,请在FullPath字段。另外,由于您生成了一个PDF测试报告,因此将捕获图像MyTestReport.pdf.测试报告还包含工件的路径。

介绍了R2016b