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和failverify结果,请在测试或框架选项卡的测试用例部分中点击隐藏未经测试的结果。或者,您可以使用set_param将logOnlyTestedVerifyResults参数设置为'on'。例如,仅记录模型tested的myModel验证语句结果:当您选择此选项时,该设置将应用于模型中的所有 Test Sequence 或 Chart 模块。使用 HDL Verifier 时该设置不适用。set_param(myModel,'logOnlyTestedVerifyResults','on')
