链接到测试脚本
在此工作流程中,您使用出向链接编辑器和 API 将需求链接到 MATLAB® 脚本。需求编辑器中的验证状态反映了测试结果。这些图示遵循了将外部测试结果纳入需求验证状态的工作流程。有关更多信息,请参阅 在验证状态中包含来自外部来源的结果。
打开示例文件
打开将自定义编写的 MATLAB 脚本的结果集成为测试示例。
openExample(['slrequirements/' ... 'IntegratingResultsFromACustomAuthoredMATLABScriptAsATestExample'])
打开需求编辑器中的 counter_req
需求集。此需求集具有子需求,这些子需求具有需求 ID 和描述。
MATLAB 代码文件 runmytests.m
对 Counter.m
中的 Counter
类运行测试。runmytests.m
文件包含自定义方法,将测试结果以 TAP 格式写入名为 results.tap
的文件。在此示例中,您使用出向链接编辑器和 Requirements Toolbox™ API 在 counter_req
需求集的需求和 runmytests.m
中的测试用例之间创建链接。
创建并注册自定义文档界面
在创建测试脚本的链接之前,请创建并注册自定义文档接口,以便链接到测试脚本并从中获取结果:
通过在 MATLAB 命令行执行此代码来打开
myCustomDocInterface.m
文件:open(fullfile(matlabroot,"toolbox","slrequirements","slrequirements","linktype_examples","myCustomDocInterface.m"))
将函数名称
myCustomDocInterface
替换为linktype_mymscripttap
。在当前文件夹中保存
myCustomDocInterface.m
的副本。在 MATLAB 的编辑器选项卡中,点击保存 > 将副本另存为。将文件另存为linktype_mymscripttap.m
将
docInterface.Label
设置为'MScript TAP Results'
。将
docInterface.Extensions
设置为{'.M'}
。用此函数替换现有的
GetResultFcn
:function result = GetResultFcn(link) testID = link.destination.id; testFile = link.destination.artifact; resultFile = getResultFile(testFile); if ~isempty(resultFile) && isfile(resultFile) tapService = slreq.verification.services.TAP(); result = tapService.getResult(testID, resultFile); else result.status = slreq.verification.Status.Unknown; end end function resultfile = getResultFile(testFile) resultMap = ["runmytests.m", "results.tap";... "othertests.m", "results2.tap"]; resultfile = resultMap(resultMap(:,1) == testFile,2); end
GetResultFcn
使用实用程序slreq.verification.services.TAP
来解释结果文件以进行验证。有关GetResultFcn
的更多信息,请参阅 定义自定义文档界面以直接链接到需求。保存
linktype_mymscripttap.m
。注册链接类型。在命令行中输入:
rmi register linktype_mymscripttap
注意
如果命令返回警告,则必须取消注册该文件并再次执行步骤 5。输入以下命令取消注册文件:
rmi unregister linktype_mymscripttap
将需求链接到测试脚本中的测试用例
您可以创建从需求到生成测试结果的测试脚本的链接来确认需求。您可以使用“出向链接编辑器”或使用 Requirements Toolbox API 创建链接。
使用出向链接编辑器创建链接
使用出向链接编辑器创建从需求到测试脚本的链接:
打开需求编辑器,在
counter_req.slreqx
需求集,右键点击子需求1.1
并选择打开 "出向链接" 对话框。在“出向链接编辑器”对话框的“需求”选项卡中,点击“新建”。
输入以下详细信息以建立链接:
描述:
runmytestscounterStartsAtZero
文档类型:
MScript TAP Results
文档:
runmytests.m
位置:
counterStartsAtZero
点击确定。该链接在需求编辑器的 链接部分中突出显示。
使用 API 链接到测试脚本
使用 API 创建从需求到测试脚本的链接:
在 MATLAB 命令提示符下输入:
externalSource.id = 'counterStartsAtZero'; externalSource.artifact = 'runmytests.m'; externalSource.domain = 'linktype_mymscripttap';
输入以下内容查找与链接相关的需求:
requirement = reqSet.find(Type="Requirement",SID=2);
通过输入以下内容创建链接:
这将针对需求创建测试用例link = slreq.createLink(requirement,externalSource);
counterStartsAtZero
的链接,并将SID
设置为2
。在需求编辑器中,链接出现在链接 > 确认者部分。
查看验证状态
通过更新需求集的验证状态,根据Excel®状态日志来更新counterStartsAtZero
测试用例的验证信息。
您可以通过点击刷新 来更新需求编辑器中的验证状态。确保选择列 + > 验证状态以查看整个需求集的验证状态。
验证状态显示三个需求中有一个已验证。
您还可以通过在 MATLAB 命令提示符下输入以下内容来更新验证状态并获取当前状态:
updateVerificationStatus(reqSet) status = getVerificationStatus(reqSet)
集成 MATLAB 单元测试用例的结果
您还可以通过链接到测试脚本来集成 MATLAB 单元测试用例的结果。该测试通过自定义的测试运行器运行,使用产生 JUnit 输出的 XML 插件。XMLPlugin
类创建一个将测试结果写入 XML 文件的插件。有关更多信息,请参阅 matlab.unittest.plugins.XMLPlugin.producingJUnitFormat
。
您可以按照与测试脚本相同的方式注册域名并创建链接。