前言
在前面一篇关于Simulink Test自动化的文章中,传送门:Simulink Test自动化(一)-自动创建Test Sequence
介绍了Test Sequence和Test harness的自动创建,本文接着介绍关于Test Manager中的Test File,Test Suite及Test Case的自动创建。
简单介绍一下三个文件的作用:
Test File:测试文件的载体,属于最上层,只有在这个层级下才可以对覆盖度进行相关配置。
Test Suite:中间层,可以建立多个Test Suite,相当于对Test Case分类。这里基本没有什么可以配置的地方。
Test Case:及测试用例,执行层,可以一个Test harness对应一个Test Case。在这个层级配置测试模型及对应的Test harness。
自动创建Test File
% Clear test file from Test Manager
sltest.testmanager.clear;
% Create the test file, test suite, and test case structure
tf = sltest.testmanager.TestFile(TestfileName);
sltest.testmanager.clear用来清除已打开的Test file
sltest.testmanager.TestFile用来创建Test File,参数为路径+File名称
配置覆盖度选项
%% Turn on coverage settings at test-file level
cov = getCoverageSettings(tf);
cov.RecordCoverage = true;
cov.MdlRefCoverage = true;
% Enable Decision Condition and MCDC coverage metrics
cov.MetricSettings = 'dmc';
getCoverageSettings获取当前file的覆盖度配置
配置覆盖度参数RecordCoverage,MdlRefCoverage为true
MetricSettings:
d: Decision coverage
c: Condition coverage
m: MCDC coverage
t: Lookup table coverage
r: Signal range coverage
o: Coverage for Simulink Design Verifier blocks
b: Relational boundary coverage
r: Signal range coverage
一般覆盖度检查为Decision Condition and MCDC
自动创建Test Suite
%% create TestSuite
ts = createTestSuite(tf,TestSuite_name);
tf为之前创建Test file时返回的句柄,后面一个参数为Test Suite的名称
一般在自动创建Test file时,会自动创建一个名为New Test Suite 1的Test Suite,可以使用下面的API函数删除它
% Remove the default test suite
tsDel = getTestSuiteByName(tf,'New Test Suite 1');
remove(tsDel);
自动创建Test case
for i = 1:length(harnessList)
tc = createTestCase(ts,'baseline',harnessList(i).name);
%set model and test harness
setProperty(tc,'Model',test_model);
setProperty(tc,'HarnessOwner',test_model,'HarnessName',harnessList(i).name);
end
本文以Test harness为Testcase载体,一个Harness对应一个Testcase。
首先创建Testcase,然后配置测试模型及对应的harness。
实现效果
自动生成的文件用Test Manager打开如下:
覆盖度配置已自动勾选上~~
总结
创建Testfile的脚本并不复杂,但也能减少一部分手动的工作量~下一篇介绍测试结果报告和覆盖度报告的生成。
若你觉得本文对你有帮助,欢迎点赞,关注,收藏,转发~~~
你的鼓励是对小弟的最大支持~~~
建了一个WX公众h,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新~