Main Content

本页采用了机器翻译。点击此处可查看最新英文版本。

链接到测试脚本

在此工作流程中,您使用出向链接编辑器和 API 将需求链接到 MATLAB® 脚本。需求编辑器中的验证状态反映了测试结果。这些图示遵循了将外部测试结果纳入需求验证状态的工作流程。有关更多信息,请参阅 在验证状态中包含来自外部来源的结果

打开示例文件

打开将自定义编写的 MATLAB 脚本的结果集成为测试示例。

openExample(['slrequirements/' ...
    'IntegratingResultsFromACustomAuthoredMATLABScriptAsATestExample'])

打开需求编辑器中的 counter_req需求集。此需求集具有子需求,这些子需求具有需求 ID 和描述。

The Requirements Editor displays the counter_req requirement set, which has one parent requirement and three child requirements.

MATLAB 代码文件 runmytests.mCounter.m 中的 Counter 类运行测试。runmytests.m 文件包含自定义方法,将测试结果以 TAP 格式写入名为 results.tap 的文件。在此示例中,您使用出向链接编辑器和 Requirements Toolbox™ API 在 counter_req需求集的需求和 runmytests.m 中的测试用例之间创建链接。

创建并注册自定义文档界面

在创建测试脚本的链接之前,请创建并注册自定义文档接口,以便链接到测试脚本并从中获取结果:

  1. 通过在 MATLAB 命令行执行此代码来打开 myCustomDocInterface.m 文件:

    open(fullfile(matlabroot,"toolbox","slrequirements","slrequirements","linktype_examples","myCustomDocInterface.m"))

  2. 将函数名称 myCustomDocInterface 替换为 linktype_mymscripttap

  3. 在当前文件夹中保存 myCustomDocInterface.m 的副本。在 MATLAB 的编辑器选项卡中,点击保存 > 将副本另存为。将文件另存为 linktype_mymscripttap.m

  4. docInterface.Label 设置为 'MScript TAP Results'

  5. docInterface.Extensions 设置为 {'.M'}

  6. 用此函数替换现有的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 的更多信息,请参阅 定义自定义文档界面以直接链接到需求

  7. 保存 linktype_mymscripttap.m

  8. 注册链接类型。在命令行中输入:

    rmi register linktype_mymscripttap

    注意

    如果命令返回警告,则必须取消注册该文件并再次执行步骤 5。输入以下命令取消注册文件:

    rmi unregister linktype_mymscripttap

将需求链接到测试脚本中的测试用例

您可以创建从需求到生成测试结果的测试脚本的链接来确认需求。您可以使用“出向链接编辑器”或使用 Requirements Toolbox API 创建链接。

使用出向链接编辑器创建链接

使用出向链接编辑器创建从需求到测试脚本的链接:

  1. 打开需求编辑器,在 counter_req.slreqx需求集,右键点击子需求 1.1 并选择打开 "出向链接" 对话框

  2. 在“出向链接编辑器”对话框的“需求”选项卡中,点击“新建”。

  3. 输入以下详细信息以建立链接:

    • 描述runmytestscounterStartsAtZero

    • 文档类型MScript TAP Results

    • 文档runmytests.m

    • 位置counterStartsAtZero

  4. 点击确定。该链接在需求编辑器链接部分中突出显示。

    The Outgoing Links Editor shows the new link with the previously described properties.

使用 API 链接到测试脚本

使用 API 创建从需求到测试脚本的链接:

  1. 在 MATLAB 命令提示符下输入:

    externalSource.id = 'counterStartsAtZero';
    externalSource.artifact = 'runmytests.m';
    externalSource.domain = 'linktype_mymscripttap';

  2. 输入以下内容查找与链接相关的需求:

    requirement = reqSet.find(Type="Requirement",SID=2);

  3. 通过输入以下内容创建链接:

    link = slreq.createLink(requirement,externalSource);
    这将针对需求创建测试用例counterStartsAtZero 的链接,并将 SID 设置为 2。在需求编辑器中,链接出现在链接 > 确认者部分。

    The link is shown in the Requirements Editor.

查看验证状态

通过更新需求集的验证状态,根据Excel®状态日志来更新counterStartsAtZero测试用例的验证信息。

您可以通过点击刷新 来更新需求编辑器中的验证状态。确保选择 + > 验证状态以查看整个需求集的验证状态。

The Requirements Editor shows the requirement set with 3 requirements and one is verified.

验证状态显示三个需求中有一个已验证。

您还可以通过在 MATLAB 命令提示符下输入以下内容来更新验证状态并获取当前状态:

updateVerificationStatus(reqSet)
status = getVerificationStatus(reqSet)

集成 MATLAB 单元测试用例的结果

您还可以通过链接到测试脚本来集成 MATLAB 单元测试用例的结果。该测试通过自定义的测试运行器运行,使用产生 JUnit 输出的 XML 插件。XMLPlugin 类创建一个将测试结果写入 XML 文件的插件。有关更多信息,请参阅 matlab.unittest.plugins.XMLPlugin.producingJUnitFormat

您可以按照与测试脚本相同的方式注册域名并创建链接。

另请参阅

App

函数

相关示例

详细信息