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
语句,请考虑明确设置离散模块采样时间。Moore、Mealy、离散事件或连续图
使用 C 作为动作语言的图
在图中绑定操作
图中的转移或条件操作
MATLAB 函数、图形函数或图中的真值表
MATLAB 函数或 Truth Table 模块
快速加速器模式下的仿真
除 Simulink® Real-Time™ 和 HDL Verifier™ 之外的代码生成目标
独立的 Stateflow 图
在
When
分解中,您无法在when
之后立即使用verify
作为条件,因为verify
语句不会产生输出。您可以将verify
语句用作When
分解步骤中的操作。请参阅通过 when 分解验证模型仿真。如果您使用并行测试执行来运行测试,并且在测试中使用了
verify
语句,则无法在测试管理器中使用在模型中突出显示按钮。
提示
您可以在 Test Sequence 和 Test Assessment 模块以及 Stateflow 图中使用
verify
语句。使用图需要 Stateflow 许可证。图中的verify
语句在与 Test Sequence 模块相同的位置、执行模式和相同的代码生成目标中受支持。您可以使用
verify
语句,无论是否带有测试用例。如果模型中未包含测试用例,结果将显示在“仿真数据检查器”中。如果模型包含测试用例,结果将显示在测试管理器中。要在单个时间步中验证多个表达式,请在同一测试步中定义
verify
语句,或添加子步骤并在每个子步骤中添加一个verify
语句。请参阅管理测试步骤。在
verify
语句中比较浮点数据时,请考虑与浮点数相关的精度限制。如果需要使用浮点数据,请为验证定义一个容差。例如,不要验证verify(x == 5)
,而是验证x
,容差为 0.001:有关更多信息,请参阅浮点数。verify(abs(x-5) < 0.001)
为了减少在目标硬件上仿真模型时数据的传输量,您可以选择仅记录已测试的
verify
语句结果,并在测试管理器和仿真数据检查器中仅显示pass
和fail
结果.要仅记录
pass
和fail
verify
结果,请在测试或框架选项卡的测试用例部分中点击隐藏未经测试的结果。或者,您可以使用set_param
将logOnlyTestedVerifyResults
参数设置为'on'
。例如,仅记录模型tested
的myModel
验证语句结果:当您选择此选项时,该设置将应用于模型中的所有 Test Sequence 或 Chart 模块。使用 HDL Verifier 时该设置不适用。set_param(myModel,'logOnlyTestedVerifyResults','on')