使用 When
分解验证模型仿真
在 Test Assessment 模块中,您可以使用 when
分解序列定义激活包含 verify
语句的步骤的仿真条件。在 When
分解序列中,步骤根据您定义的仿真条件激活。有关 When
分解序列的更多信息,请参阅 测试序列基础知识。
verify
语句评估逻辑表达式并为每个时间步骤和整体仿真返回 pass
、fail
或 untested
结果。任何时间步骤的 fail
结果都会导致整体仿真的 fail
结果。如果没有出现失败的结果,则任何时间步骤中的 pass
都会导致整个仿真的 pass
结果。否则,总体结果是 untested
。然后,如果您在没有测试用例的情况下运行仿真,则可以在测试管理器或仿真数据检查器中查看测试结果。您可以选择通过仅记录经过测试的 verify
语句结果来仅显示 pass
和 fail
语句。有关创作 verify
语句的更多信息,请参阅 verify
。
您可以以 When
分解的形式编写 verify
语句:
如果您的模型不使用 Test Sequence 模块作为源,或者您的测试序列步骤与要验证的条件不符。在这种情况下,您可以使用信号条件激活每个
verify
语句。如果您的模型使用 Test Sequence 模块作为源。在这种情况下,您可以使用活动 Test Sequence 模块步骤来激活 Test Assessment 模块中的
verify
语句。请参阅使用活动步进输出作为另一个模块的输入。
使用信号条件激活 verify
语句
此示例显示如何在 Test Assessment 模块中的 When
分解中使用 verify
语句来在测试框架中编写评估。
该模型实现了一个简单的信号跟踪器,以三种模式运行:关闭、慢速和快速。
为了观察输出和误差信号,仿真模型。
打开测试框架
SimpleTracker
子系统包含一个包含 Test Assessment 模块的测试框架。
Test Assessment 模块通过使用 When
分解中的 verify
语句来评估 SimpleTracker
子系统的行为。
CheckError
步骤具有 When
分解,其中包含三个子步骤:
当
mode
的值为0
时,OffMode
处于活动状态。当
mode
的值为1
时,SlowMode
处于活动状态。QuickMode
对于mode
的所有其他值均活动。
运行模型评估
要运行评估,仿真测试框架。打开仿真数据检查器来检查结果。
仅记录测试过的 verify
结果
要仅记录和显示 pass
和 fail
结果,请在 框架选项卡中点击 Suppress Untested Results。仿真测试框架并打开仿真数据检查器。仿真数据检查器不显示 untested
结果。
使用测试序列步骤激活 verify
语句
如果您的模型使用测试序列作为模块源,则可以使用来自 Test Sequence 模块的活动步进信号连接测试序列和 Test Assessment 模块。您可以在 Test Assessment 模块中创建 When
分解并定义 verify
语句来评估模型仿真。
例如,Harness1_TestSeqAndTestAssessment
框架包含一个 Test Sequence 和 Test Assessment 模块。Active_Step
信号连接各个模块。
Test Assessment 模块包含一个具有四个子步骤的 When
分解序列。每个子步骤包含一个 verify
语句,并使用不同的 Test Sequence 模块步骤激活。
本例中的 Else
步骤没有任何操作,处理与前面的任何 when
条件都不匹配的仿真条件。此步骤不能包含 when
条件。
要使用 Test Sequence 模块中的活动步骤激活测试评估中的 verify
语句,请为 Test Sequence 模块创建活动步骤数据输出。选择 Test Sequence 模块,然后在属性检查器中选择创建数据以监视活动步骤,并将数据类型设置为 Enum
。在枚举名称中输入名称。
然后,为 Test Assessment 模块创建输入数据。打开 Test Assessment 模块,在符号窗格中,指向输入,点击添加数据 ,然后命名输入。将 Test Sequence 模块输出连接到 Test Assessment 模块输入。
在 Test Assessment 模块中创建 When
分解。默认情况下,Test Assessment 模块具有 When
分解序列。要在标准序列和 When
分解序列之间切换,请右键点击父步骤并选择分解时。对于每个 When
分解步骤,使用活动步骤枚举数据定义该步骤何时处于活动。
VerifyBoth when TSActiveStepIN == ... TSActiveStepEnum.PressBothButtons
另请参阅
测试序列编辑器 | Test Sequence | Test Assessment | verify
| sltest.testmanager.Assessment
| sltest.testmanager.AssessmentSymbol
| sltest.testmanager.TestCase