Main Content

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

测试执行顺序

当你执行测试时,Simulink® Test™ 会打开要测试的模型,运行回调函数,关闭模型并清理。如果您有脚本或表迭代,它们会在模型加载之前运行。测试执行的顺序取决于:

  • 无论运行单个测试用例还是运行包含一个或多个测试用例的测试套件

  • 测试模型数量

  • 测试用例数量

对于串行仿真,测试用例按照测试管理器中列出的顺序运行。要更改测试用例在测试管理器中运行的顺序,请将测试用例拖放到测试浏览器窗格中所需的顺序。您不能拖放测试套件。如果您以并行模式运行仿真,测试用例可能不会按照测试管理器中显示的顺序运行。

如果您的测试用例包含回调,请注意 dispfprintf 在回调中不起作用。相反,使用 sltest.testmanager.setprefShowSimulationLogs 属性。要验证回调是否已执行,请使用在回调中包含断点的 MATLAB 脚本。

有关实时测试的测试执行顺序,请参阅 实时测试模型

单一模型上的单一测试用例

如果选择在单个模型上运行特定测试用例,且测试运行前该模型未打开,则执行顺序为:

  1. 运行测试用例 Pre-Load 回调。

  2. 运行模型 PreLoadFcn 回调。

  3. 负载模型。

  4. 运行模型 PostLoadFcn 回调。

  5. 运行测试用例 Post-Load 回调。

  6. 仿真模型。

  7. 运行测试用例 Cleanup 回调。

  8. 运行模型 CloseFcn 回调。

如果运行包含测试用例的测试套件,则测试套件 Setup 回调在第一步之前运行,而测试套件 Cleanup 回调在最后一步之后运行。

多个模型上的多个测试用例

如果运行在不同模型上运行的多个测试用例,且测试运行前模型未打开,则两个模型上运行的两个测试用例的执行顺序如下:

  1. 运行测试用例 1 Pre-Load 回调。

  2. 运行模型 1 PreLoadFcn 回调。

  3. 加载模型 1。

  4. 运行模型 1 PostLoadFcn 回调。

  5. 运行测试用例 1 Post-Load 回调。

  6. 针对测试用例 1 仿真模型 1。

  7. 运行测试用例 1 Cleanup 回调。

  8. 运行测试用例 2 Pre-Load 回调。

  9. 运行模型 2 PreLoadFcn 回调。

  10. 加载模型 2。

  11. 运行模型 2 PostLoadFcn 回调。

  12. 运行测试用例 2 Post-Load 回调。

  13. 针对测试用例 2 仿真模型 2。

  14. 运行测试用例 2 Cleanup 回调。

  15. 运行模型 1 CloseFcn 回调。

  16. 运行模型 2 CloseFcn 回调。

如果运行包含测试用例的测试套件,则测试套件 Setup 回调在第一步之前运行,而测试套件 Cleanup 回调在最后一步之后运行。

使用 CloseFcn 关闭模型的顺序可能与打开或运行模型的顺序不同。在上面的例子中,步骤 15 和步骤 16 可能会互换。

单个模型上的单个测试套件中的多个测试用例

如果在单个模型上的测试套件中运行多个测试用例,且测试运行前模型未打开,则两个测试用例的执行顺序如下:

  1. 运行测试用例 1 Pre-Load 回调。

  2. 运行模型 PreLoadFcn 回调。

  3. 负载模型。

  4. 运行模型 PostLoadFcn 回调。

  5. 运行测试用例 1 Post-Load 回调。

  6. 仿真模型。

  7. 运行测试用例 1 Cleanup 回调。

  8. 运行测试用例 2 Pre-Load 回调。

  9. 运行测试用例 2 Post-Load 回调。

  10. 仿真模型。

  11. 运行测试用例 2 Cleanup 回调。

  12. 运行模型 CloseFcn 回调。

如果在测试运行之前打开模型,则两个测试用例的执行顺序如下:

  1. 运行测试用例 1 Pre-Load 回调

  2. 运行测试用例 1 Post-Load 回调

  3. 仿真模型

  4. 运行测试用例 1 Cleanup 回调

  5. 运行测试用例 2 Pre-Load 回调

  6. 运行测试用例 2 Post-Load 回调

  7. 仿真模型

  8. 运行测试用例 2 Cleanup 回调

请注意,模型 PreLoadFcnPostLoadFcn 回调不会执行,因为模型在测试运行之前已经加载。模型 CloseFcn 回调也不会执行,因为模型在测试完成后保持打开状态。

单个模型上的多个测试套件中的多个测试用例

假设您有两个测试套件,每个套件包含两个测试用例,例如:

  • 测试套件 1

    • 测试用例 1-1

    • 测试用例 1-2

  • 测试套件 2

    • 测试用例 2-1

    • 测试用例 2-2

回调的执行顺序是:

  1. 运行测试套件 1 Setup 回调。

  2. 运行测试用例 1-1 Pre-Load 回调。

  3. 运行测试用例 1-1 PostLoad 回调。

  4. 仿真模型。

  5. 运行测试用例 1-1 Cleanup 回调。

  6. 运行测试用例 1-2 Pre-Load 回调。

  7. 运行测试用例 1-2 Post-Load 回调。

  8. 仿真模型。

  9. 运行测试用例 1-2 Cleanup 回调。

  10. 运行测试套件 1 Cleanup 回调。

  11. 运行测试套件 2 Setup 回调。

  12. 运行测试用例 2-1 Pre-Load 回调。

  13. 运行测试用例 2-1 Post-Load 回调。

  14. 仿真模型。

  15. 运行测试用例 2-1 Cleanup 回调。

  16. 运行测试用例 2-2 Pre-Load 回调。

  17. 运行测试用例 2-2 Post-Load 回调。

  18. 仿真模型。

  19. 运行测试用例 2-2 Cleanup 回调。

  20. 运行测试套件 2 Cleanup 回调。

带参数覆盖的测试用例

对于具有参数覆盖的测试用例,执行顺序为:

  1. 运行测试用例 Pre-Load 回调。

  2. 负载模型。

  3. 读取参数覆盖,从而触发模型更新。

  4. 运行测试用例 Post-Load 回调。

  5. 仿真模型。

  6. 运行测试用例 Cleanup 回调。

  7. 运行模型 CloseFcn 回调。