verify
评估逻辑表达式并记录结果
描述
verify( 将标量逻辑 expression)expression 计算为 true 或 false。
verify( 在标量逻辑表达式失败时返回指定的错误消息。如果您在测试管理器中运行测试,则错误消息显示在仿真日志中。如果您在测试管理器外运行测试,则错误消息显示在诊断查看器中。将 expression,errorMessage)errorMessage 指定为字符数组,该字符数组可以使用 sprintf 进行格式化。在 Stateflow® 图中,无法在字符串或字符数组中使用 sprintf 格式化语法。
注意
在实时环境中,verify 语句失败后不会产生警告。如果您在测试管理器中运行实时测试用例,验证语句部分会显示测试用例结果中的失败项。您也可以使用 getVerifyRuns 访问有关 verify 运行的信息。
如果您在快速重启仿真模式下运行测试迭代,验证语句不会向诊断查看器、测试管理器的日志部分或测试报告中输出信息、错误或警告。
verify( 使用 expression,identifier,errorMessage)identifier 作为测试结果的标签。如果您在测试管理器中运行测试,则 identifier 会用作测试结果的信号标签。如果您在测试管理器外运行测试,则标签会显示在仿真数据检查器中,若失败则显示在诊断查看器中。将 identifier 指定为字符数组,该字符数组中需包含至少两个以冒号分隔的 MATLAB® 标识符。
示例
限制
以下对象中无法使用
verify语句:使用连续时间更新的 Test Sequence 模块。Test Sequence 模块数据可能依赖于求解器步长时间等因素。连续时间更新可能导致模块数据与
verify语句的更新时间存在差异,进而导致verify语句产生意外结果。如果您的模型使用连续时间并且您在 Test Sequence 模块或 Test Assessment 模块中使用verify语句,请考虑显式设置离散模块采样时间。摩尔图、米利图、离散事件图或连续图
使用 C 语言作为动作语言的图
图中的绑定动作
图中的转移动作或条件动作
图中的 MATLAB 函数、图形函数或真值表
MATLAB Function 或 Truth Table 模块
快速加速模式下的仿真
除 Simulink® Real-Time™ 和 HDL Verifier™ 之外的代码生成目标
独立 Stateflow 图
在
When分解中,无法在when之后立即将verify用作条件,因为verify语句不产生输出。可以在When分解步骤中将verify语句用作动作。请参阅通过 when 分解验证模型仿真。如果使用并行测试执行运行测试并且在测试中使用
verify语句,则无法使用测试管理器中的在模型中突出显示按钮。
提示
可以在 Test Sequence 模块和 Test Assessment 模块以及 Stateflow 图中使用
verify语句。使用图需要 Stateflow 许可证。图中的verify语句支持的使用位置、执行模式和代码生成目标与 Test Sequence 模块相同。使用
verify语句时有或没有测试用例均可。如果模型不包含测试用例,则结果显示在仿真数据检查器中。如果模型包含测试用例,则结果显示在测试管理器中。要在单个时间步中验证多个表达式,可在相同测试步骤中定义
verify语句,或者添加子步骤并为每个子步骤添加verify语句。请参阅管理测试步骤。在
verify语句中比较浮点数据时,需考虑与浮点数关联的精度限制。如果您需要使用浮点数据,请为验证定义容差。例如,请不要使用verify(x == 5),而是在 0.001 的容差内验证x:有关详细信息,请参阅浮点数。verify(abs(x-5) < 0.001)
在目标硬件上仿真模型时,为了减少数据传输,可以选择仅记录已测试的
verify语句结果,并仅在测试管理器和仿真数据检查器中显示pass和fail结果。要仅记录
pass和failverify结果,请在测试或框架选项卡的测试用例部分中,点击隐藏未经测试的结果。您也可以使用set_param将logOnlyTestedVerifyResults参数设置为'on'。例如,仅记录模型myModel的tested验证语句结果:选择此选项时,该设置将应用于模型中的所有 Test Sequence 模块或 Chart 模块。使用 HDL Verifier 时,该设置不适用。set_param(myModel,'logOnlyTestedVerifyResults','on')
