主要内容

matlab.unittest.plugins.diagnosticsrecordingplugin类

包裹:matlab.unittest.plugins.

插件以测试结果记录诊断

描述

DiagnosticsRecordingPlugin启用对来自单元测试的诊断信息的编程访问。

此类创建插件以在测试结果上记录诊断。当testrunner.记录这些诊断为DiagnosticRecord阵列在细节财产的testresult.对象。每个元素DiagnosticRecord阵列对应于在个体中测试的事件。

如果您与之运行测试runtests功能,testrunner没有输入的功能,或者方法的TestSuite测试箱,测试框架默认使用此插件。另外,如果您使用的性能测试runperf功能或方法TimeExperiment,测试框架默认使用此插件。

建筑

matlab.unittest.plugins.diagnosticsrecordingplugin.创建插件以在测试结果上记录诊断。默认情况下,DiagnosticsRecordingPlugin记录资格故障和记录的事件。

matlab.unittest.plugins.DiagnosticsRecordingPlugin(名称,价值创建一个包含一个或多个指定的附加选项的插件名称,价值对参数。名称必须出现在单引号内('')。您可以按照任何顺序指定多个名称 - 值对参数Name1, Value1,…,的家

输入参数

展开所有

名称值对参数

指定可选的逗号分离对名称,价值参数。名称是参数名称和价值为对应值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

示例:matlab.unittest.plugins.DiagnosticsRecordingPlugin( 'IncludingPassingDiagnostics',真)创建一个插件,记录经过诊断除诊断故障资格和记录的事件。

是否以传递测试记录诊断,指定为真正的.默认情况下,该插件不记录从通过测试诊断。

数据类型:逻辑

Logged DiageStics的最大级别由插件实例记录,指定为0到4的整数值,或者matlab.unittest.verbosity.枚举对象。插件记录在此级别和下面记录的诊断。整数值对应于成员matlab.unittest.verbosity.枚举。

默认情况下,插件记录诊断记录在该诊断matlab.unittest.verbosity.terse.电平(1电平)。要排除记录的诊断,指定LoggingLevelas.冗长(0级)。

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

数字表示 枚举成员名称 冗长的描述
0. 没有

没有信息

1 简洁

最少的信息

2 简洁

信息适量

3. 详情

一些补充信息

4. verb

大量补充信息

记录事件的详细信息级别,指定为从0到4的整数值,或作为matlab.unittest.verbosity.枚举对象。整数值对应于成员matlab.unittest.verbosity.枚举。

该插件记录传球,失败,并记录的事件与指定的细节数量OutputDetail.默认情况下,插件记录事件matlab.unittest.Verbosity.Detailed级别(三级)。

数字表示 枚举成员名称 冗长的描述
0. 没有

没有信息

1 简洁

最少的信息

2 简洁

信息适量

3. 详情

一些补充信息

4. verb

大量补充信息

属性

展开所有

此属性是只读的。

指示器,如果记录了传递事件的诊断,则返回为真正的.这家酒店是默认情况下。你可以指定它为真正的在施工期间。

数据类型:逻辑

此属性是只读的。

最高详细级别由插件记录登录诊断,返回为matlab.unittest.verbosity.枚举对象。插件记录在此级别和下面记录的诊断。默认情况下,此属性值是matlab.unittest.verbosity.terse..您可以在插件构建期间指定不同的日志记录级别。

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

此属性是只读的。

显示级别事件的细节,返回为matlab.unittest.verbosity.枚举对象。该插件通过显示,故障,和记录的事件与由指定的细节量OutputDetail.默认情况下,此属性值是matlab.unittest.Verbosity.Detailed.您可以插件施工过程中指定一个不同的输出细节。

复制语义

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

例子

崩溃

在工作文件夹中,创建一个文件,exampletest.m.,包含以下测试类。这个测试的目的是说明如何使用DiagnosticsRecordingPlugin插件,它并不是一个有代表性的单元测试。

Classdef.ExampleTest 方法(测试)功能种皮(测试用例)testCase.log(1,'ters log消息'%的日志testcase.log(3,“详细日志消息”%的日志testCase.verifyEqual(3 + 2,5)%通过testCase.assumeTrue(真)%通过testCase.verifyGreaterThan(5,9)%失败testcase.asterqual(3.14,pi)%失败/不完整结束功能TESTB(测试用例)%该测试包含故意错误 - 传递一个字符%而不是函数的变量。a = [1 2];testcase.verifyequal(那些)('A'),[1 1]);%错误结束结束结束

在命令提示,创建从一个测试套件ExampleTest班级。

套件=测试包('ExampleTest');

创建无插件的测试亚军。此代码创建一个无声的亚军,并为您提供了已安装的插件完全控制。添加DiagnosticsRecordingPlugin在测试运行。

进口matlab.unittest.TestRunner;进口matlab.unittest.plugins.diagnosticsrecordingplugin.;转轮= TestRunner.withNoPlugins;runner.addPlugin(DiagnosticsRecordingPlugin);

运行测试。

结果= runner.run(套件);

显示从第二测试的结果。试验失败,是不完整的。

结果(2)
ANS = TestResult中具有属性:名称: 'ExampleTest / TESTB' 通过:0失败:1未完成:1持续时间:7.8912e-04详细信息:[1×1结构]总计:0通过,1失败,不完全1。0.00078912秒测试时间。

索引诊断记录显示更多的信息。

(2) .Details.DiagnosticRecord结果
[1×1 MException] AdditionalDiagnosticResults: [1×0 matlab.unittest.diagnostics.]诊断结果栈:[1×1 struct]报告:'错误发生在ExampleTest/testB和它没有运行到完成…'

测试抛出未捕获的例外。

收集第一次测试的诊断记录,种皮

testa_records =结果(1).details.diagnosticrecord
test_records = 1×3 heterogeneous DiagnosticRecord (LoggedDiagnosticRecord, QualificationDiagnosticRecord)数组,带有属性:Event EventScope EventLocation Stack Report

查看记录的插件事件种皮

{testA_records.Event}”
ans = 3×1个单元阵列{'diageosticlogged'} {'verificationfailed'} {'assertionfailed'}

插件记录记录的消息简洁冗长程度,以及验证和断言失败。

创建一个在所有详细级别记录消息的插件,包括传递诊断。重新运行测试并收集诊断记录种皮

转轮= TestRunner.withNoPlugins;runner.addPlugin(DiagnosticsRecordingPlugin(......'IncludingPassingDiagnostics',真实,'outputdetail'4,'logginglevel',4));结果= runner.run(套件);testA_records =结果(1).Details.DiagnosticRecord;

查看记录的插件事件种皮

{testA_records.Event}”
ans = 6×1个单元阵列{'diagnosticlogged'} {'验证邮件'} {'验证已链式'} {'verificationpassed'} {'verificationfailed'} {'assertionfailed'}

插件记录所有限定和调用的诊断信息日志方法。

选择具有失败事件诊断的所有记录。

FailedRecords = SelectFailed(testa_records)
FailedRecords = 1×2 PryificationDiagnosticRecord阵列具有属性:事件EventsCope eventLocation TestDiagnosticResults FrameworkDiagnosticResults adjectDiagnosticResults堆栈报告

选择所有通过事件诊断的记录,并显示第一个记录的报告。

passedRecords = selectPassed(testA_records);passedRecords(1)。报告
ANS =“验证传入ExampleTest /种皮。---------------------框架诊断:--------------------- verifyEqual通过。- >值相等使用“isequaln”。实际值:5预期值:5 ------------------堆栈信息:------------------在C:\工作\ ExampleTest.m(ExampleTest.testA)在6'

选择不完整事件的所有记录。

incompleteRecords = selectIncomplete (testA_records)
Incompleterecords = paritificationDiagnosticRecord与属性:'AssertionFailed'EventsCope:TestMethod eventLocation:'exampletest / testa'testdiagnosticresults:[1×0 matlab.unittest.diagnostics.diagnosticresult] frameworkdiagnosticresults:[1×1 matlab.unittest.diagnostics.diagnosticresult] rociplateddiagnosticresults]:[1×0 matlab.unittest.diagnostics.diagnosticresult]堆栈:[1×1结构]报告:'isertion在excepletest / testa中失败,它没有跑到完成......'

由于此事件是一个断言失败,因此该框架也将使用失败的诊断返回此记录失败了(2)

选择具有记录事件的所有记录并显示记录的消息。

loggedRecords = selectLogged(testA_records);{loggedRecords.Report}”
ANS = 2×1单元阵列{ '[简洁]诊断记录(2018年4月12日13点15分23秒):简洁日志消息'} {'[详细]诊断记录(2018年4月12日13点15分23秒):详细日志消息'}
在R2016A介绍