Main Content

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

slreq.verification.services.JUnit 类

命名空间: slreq.verification.services
超类:

使用外部结果源

自 R2020a 起

描述

slreq.verification.services.JUnit 的实例提供了用于解释 JUnit 结果文件以进行验证的实用程序。

创建对象

JUnitService = slreq.verification.services.JUnit() 将结果获取逻辑定向到 XML 文件。

输出参量

全部展开

GetResultFcn 中使用的服务,用于编写结果获取逻辑脚本

方法

这些方法可以在 JUnit 类的实例上运行,例如上面所示的 JUnitService

对于包含 ID 为 testID 的测试结果的 resultFilegetResult 函数将返回 testID 的结果。输出 result 是一个结构体,其中包含 testID 的字段 statustimestamp

result = JUnitService.getResult(testID, resultFile);

getAllResults 类似地获取 resultFile 中所有测试的 result,使用方法如下:

allResults = JUnitService.getAllResults(resultFile);

其中 allResults 是一个结构体数组,其中包含 resultFile 中所有测试的字段 testidstatustimestamp。如果该测试的 JUnit 输出中有错误或诊断输出,则 errorinfo 字段包含该文本字符串。

示例

全部折叠

在此示例中,您通过链接到测试脚本来集成 MATLAB® xml 单元测试的结果。需求编辑器中的验证状态反映了测试结果。此示例使用名为 counter_req 的需求集文件和名为 myMUnitResults.xml 的 XML 单元测试文件。该文件包含一个名为 testCounterStartsAtZero 的测试用例。

注册自定义文档接口

在创建链接之前,您需要从需求集文件中注册自定义文档接口。在需求编辑器中打开需求文件 counter_req.slreqx

reqSet = slreq.open('counter_req.slreqx');

requirements_set_munit.png

注册集成 MUnit 测试文件结果的自定义文档接口。

rmi register custom_mymljunitresults

GetResultFcn 函数中的自定义逻辑定位与测试用例相对应的结果文件并从该 XML 文件中获取结果。该测试通过采用 XML 插件的自定义测试运行器来运行,并产生 JUnit 输出。XML Plugin 类创建一个插件,将测试结果写入名为 myMUnitResults.xml 的文件。

如果注册命令返回警告,则必须取消注册该文件并再次运行该命令。要取消注册该文件,请输入 rmi unregister custom_mymljunitresults

创建链接

使struct包含外部测试的属性。要创建链接,请在命令提示符下输入:

externalSource.id = 'testCounterStartsAtZero';
externalSource.artifact = 'counterTests.m';
externalSource.domain = 'custom_mymljunitresults';

与该链路相关的需求其 SID 设置为 2。要查找与链接相关的需求,请输入:

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

要创建链接,请输入:

link = slreq.createLink(requirement, externalSource);

此命令创建测试用例testCounterStartsAtZero与 SID 为 2 的需求之间的链接。

注意:为了避免结果过时,请确保结果文件的时间戳比链接创建的时间戳新。打开myMUnitResults.xml,在文件中进行虚拟更改并再次保存以获取最新时间戳。

需求编辑器中,链接出现在右侧窗格中的链接下。

第 3 部分:查看验证状态

要查看验证状态,您需要先更新需求集的验证状态。在 MATLAB 命令提示符下,键入:

reqSet.updateVerificationStatus;

要查看需求编辑器中的验证状态列,请确保选择了 showColumns_16.png >验证状态。更新后,获取需求的验证状态:

status = reqSet.getVerificationStatus
status = struct with fields:
        failed: 0
     justified: 0
          none: 2
        passed: 0
         total: 3
    unexecuted: 1

需求编辑器显示通过或失败的整个需求集的验证状态。

verification_status_passed_test_counter.png

testCounterStartsAtZero 的需求的验证状态已完全验证。打开需求编辑器查看验证状态:

reqSet = slreq.open('counter_req.slreqx');

需求编辑器显示需求集每个需求的验证状态。counterSetsValue 的需求的验证状态已完全验证。

overall_verification_status_pass_test_counter.png

验证状态显示,三项测试中,有一项测试通过。点击刷新可查看需求编辑器中需求的验证状态。

取消注册自定义文档接口。

rmi unregister custom_mymljunitresults;

版本历史记录

在 R2020a 中推出