sltest.plugins.coverage.CoverageMetrics 类
命名空间: sltest.plugins.coverage
指定使用 MATLAB 单元测试框架运行的测试的覆盖率度量
描述
使用 sltest.plugins.coverage.CoverageMetrics
类来指定覆盖率度量。将覆盖率度量对象传递给模型覆盖率插件对象。
sltest.plugins.coverage.CoverageMetrics
类是 handle
类。
创建对象
创建具有指定属性的覆盖率度量对象。cmo
= sltest.plugins.coverage.CoverageMetrics(Properties
)
您还可以导入插件,然后使用类名创建对象:
import sltest.plugins.coverage.CoverageMetrics
cmo = CoverageMetrics(Properties)
属性
Decision
— 决策覆盖率
true (默认) | false
启用或禁用决策覆盖率收集。
示例: 'Decision',true
属性:
SetAccess | public |
GetAccess | public |
Condition
— 条件覆盖率
false (默认) | true
启用或禁用条件覆盖率收集。如果启用条件覆盖率,覆盖报告则同时显示条件覆盖和决策覆盖率。
示例: 'Condition',true
属性:
SetAccess | public |
GetAccess | public |
MCDC
— MCDC 覆盖率
false (默认) | true
启用或禁用修正条件/决策覆盖率收集。如果启用 MCDC,条件和决策覆盖率也会被收集并包含在覆盖率报告中。
示例: 'MCDC',true
属性:
SetAccess | public |
GetAccess | public |
LookupTable
— 查找表覆盖率
false (默认) | true
启用或禁用查找表覆盖率收集。
示例: 'LookupTable',true
属性:
SetAccess | public |
GetAccess | public |
SignalRange
— 信号范围覆盖率
false (默认) | true
启用或禁用信号范围覆盖率收集。
示例: 'SignalRange',true
属性:
SetAccess | public |
GetAccess | public |
SignalSize
— 信号尺寸覆盖率
false (默认) | true
启用或禁用信号大小覆盖率收集。
示例: 'SignalSize',true
属性:
SetAccess | public |
GetAccess | public |
SimulinkDesignVerifier
— Simulink Design Verifier 模块覆盖率
false (默认) | true
启用或禁用 Simulink Design Verifier 模块覆盖率收集。
示例: 'SimulinkDesignVerifier',true
属性:
SetAccess | public |
GetAccess | public |
SaturationOnIntegerOverflow
— 整数溢出时模块饱和
false (默认) | true
启用或禁用记录模块因整数溢出而饱和的次数。
示例: 'SaturationOnIntegerOverflow',true
属性:
SetAccess | public |
GetAccess | public |
RelationalBoundary
— 关系边界覆盖率
false (默认) | true
启用或禁用关系边界覆盖率。
示例: 'RelationalBoundary',true
属性:
SetAccess | public |
GetAccess | public |
示例
使用 MATLAB® 单元测试收集模型覆盖率
此示例显示如何使用 MATLAB® 单元测试来收集在 Simulink®模型上运行的测试的覆盖率。
在收集修正条件/决策 (MCDC)覆盖率的同时,运行 AutopilotTestFile.mldatx
测试文件中的测试。
1.导入示例的测试运行器和插件。
import matlab.unittest.TestRunner import sltest.plugins.ModelCoveragePlugin import sltest.plugins.coverage.CoverageMetrics import sltest.plugins.coverage.ModelCoverageReport import matlab.unittest.plugins.codecoverage.CoberturaFormat
2.在当前工作目录中创建一个子文件夹,并创建一个指定该新文件夹的 ModelCoverageReport
对象。
mkdir('./myReports/coverage'); path = './myReports/coverage'; mcr = ModelCoverageReport(path,'ReportName','RollRefCov');
3.创建模型覆盖率插件对象和覆盖率度量对象。在此示例中,您使用 MCDC 覆盖率和记录覆盖率来引用模型。
mcdcMet = CoverageMetrics('Decision',true,'Condition',true,'MCDC',true); covSettings = ModelCoveragePlugin('RecordModelReferenceCoverage',true,... 'Collecting',mcdcMet,'Producing',mcr);
4.从测试文件创建 MATLAB® 单元测试测试套件。
tf = sltest.testmanager.TestFile('AutopilotTestFile.mldatx');
APSuite = testsuite(tf.FilePath);
5.创建没有任何插件的测试运行器,然后将覆盖率插件添加到运行器。
APRun = TestRunner.withNoPlugins(); addPlugin(APRun,covSettings);
6.运行该套件。
% Turn off the command line warnings. warning off Stateflow:cdr:VerifyDangerousComparison warning off Stateflow:Runtime:TestVerificationFailed APResult = run(APRun,APSuite)
Coverage Report for RollAutopilotMdlRef/Roll Reference /tmp/Bdoc24a_2589924_3008987/tp8a7d4faf/simulinktest-ex63642652/myReports/coverage/RollRefCov.html
APResult = TestResult with properties: Name: 'AutopilotTestFile > Basic Design Test Cases/Requirement 1.3 Test' Passed: 1 Failed: 0 Incomplete: 0 Duration: 13.5094 Details: [1x1 struct] Totals: 1 Passed, 0 Failed, 0 Incomplete. 13.5094 seconds testing time.
7.您可以打开命令行输出中的链接来查看覆盖率报告。
8.您还可以创建 Cobertura XML 格式的报告。创建一个没有插件的新测试运行器,添加 ModelCoveragePlugin,并运行测试套件。Cobertura 报告已保存到工作文件夹。
CobRun = TestRunner.withNoPlugins; addPlugin(CobRun,ModelCoveragePlugin('Producing',... CoberturaFormat('CoverageResults.xml'))); CobResult = run(CobRun,APSuite);
清理。清除结果并重新启用警告。
warning on Stateflow:cdr:VerifyDangerousComparison warning on Stateflow:Runtime:TestVerificationFailed sltest.testmanager.clearResults; sltest.testmanager.clear; sltest.testmanager.close;
版本历史记录
在 R2018a 中推出
另请参阅
sltest.plugins.ModelCoveragePlugin
| sltest.plugins.coverage.ModelCoverageReport
主题
- 使用 MATLAB 单元测试测试模型
- 模型覆盖的类型 (Simulink Coverage)
- 接受覆盖的模型对象 (Simulink Coverage)
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)