CAPL 编程系列教程 - 第三十四期 测试模块 (Test Module) 进阶 - Test Setup 环境

CAPL 编程 - 第 34 期:测试模块 (Test Module) 进阶 - Test Setup 环境

目标: 本期继续深入学习 CANoe 中的 CAPL 测试模块 (Test Module),重点介绍在专门的 "Test Setup" 环境中创建、管理和执行测试模块的方法。这被认为是比上一期(第 33 期)在 Simulation Setup 中创建更常用、更规范的企业级实践方式。

1. 回顾与对比

  • 上一期方法: 在 CANoe 的 "Simulation Setup" (仿真设置) 窗口中直接插入 CAPL Test Module 节点。这是一种快速入门的方式。
  • 本期方法 (标准实践): 使用 CANoe 菜单栏 "Test" 下的 "Test Setup" (测试设置) 环境来集中管理测试资产。

2. Test Setup (测试设置) 环境

  • 访问: 通过 CANoe 菜单栏 -> Test -> Test Setup 打开。
  • 目的: 提供一个独立于总线仿真配置的、专门用于组织、配置和执行自动化测试的环境。
  • 结构: Test Setup 采用层级结构来组织测试:
    • Test Environment (测试环境): 顶层容器。
    • Test Module (测试模块): 在测试环境下创建,对应一个具体的测试范围或功能模块,关联一个 CAPL 脚本。
    • Test Group (测试组): (本期提及,后续可能详述) 在 Test Module 内部,可以创建测试组来进一步分类管理测试用例。
    • Test Case (测试用例): 定义在 Test Module 关联的 CAPL 脚本中,并可在 Test Setup 结构中显示。

3. 在 Test Setup 中创建和配置测试模块

  • 创建: 在 Test Setup 窗口中,通常在 Test Environment 下右键点击 -> Insert Test Module。
  • 配置:
    • 选择新创建的 Test Module,在下方的配置区域进行设置。
    • Name: 为测试模块命名。
    • File: 关联 CAPL 脚本文件 (.can),同样推荐存放在项目下的 Test Modules 子文件夹。
    • Test Report: 配置报告输出路径和名称,同样推荐使用 Test Reports 子文件夹。
  • 优势:
    • 集中管理: 所有测试相关的配置(模块、脚本关联、报告设置)都在 Test Setup 中完成。
    • 更好组织: 层级结构(环境、模块、组)便于管理大型测试项目。
    • 关注点分离: 将测试配置与总线仿真配置 (Simulation Setup) 分开,使两者更清晰。

4. 编写测试脚本 (.can 文件)

  • 内容不变: 关联到 Test Module 的 .can 脚本的编写方式与上一期相同。
    • 使用 testcase 关键字定义测试用例函数。
    • testcase 中使用 TestStepPass()TestStepFail() 来记录步骤结果和描述信息。
    • 实现 void MainTest() 函数来调用需要执行的 testcase,控制执行流程。

5. 从 Test Setup 执行测试

  • 执行方式:
    1. 启动 CANoe 测量。
    2. 在 "Test Setup" 窗口中,选中想要执行的 Test Module、Test Group 或单个 Test Case。
    3. 点击 "Test Setup" 窗口工具栏中的 "Run" (▶) 按钮,或者使用 "Test" 菜单下的 "Test Execution" 窗口进行控制。
  • 区别: 测试的启动和控制转移到了 Test Setup 环境,而不是通过 Simulation Setup 中的节点。

6. 测试报告

  • 生成与查看: 测试报告的生成机制、配置方式(在 Test Module 配置中指定)以及查看方式(通过 Test Execution 面板的按钮或直接打开文件)与上一期介绍的方法完全相同。

7. 实例演示 (Bug 修复与验证)

  • 场景: 延续上一期的 add 函数测试示例。
  • 问题回顾: 上一期中,测试用例 TestAdd02 尝试测试 add(3.2, 5.4),但由于 add 函数定义为 long add(long a, long b),输入参数和返回值被截断为整数,导致测试失败 (实际结果为 8,预期为 8.6)。
  • 代码修复: 本期讲座中,将 add 函数修改为处理浮点数:double add(double a, double b),并相应调整 TestAdd02 中的预期结果比较和 TestStepPass/Fail 中的结果打印格式(使用 %f)。
  • 测试验证:
    1. 修改并编译 .can 脚本。
    2. 在 Test Setup 环境中重新运行 Test Module。
    3. 查看 Test Execution 面板和 Test Report,确认 TestAdd02 现在也通过了测试(实际结果为 8.8,符合预期 8.8 - 讲座中输入改为 3.3+5.5)。
  • 意义: 这个过程演示了自动化测试的核心循环:编写测试 -> 执行测试发现 Bug -> 开发人员修复 Bug -> 重新执行测试验证修复。

总结: 本期重点介绍了在 CANoe 中使用 Test Setup 环境来管理和执行 CAPL Test Module 的标准方法。这种方法提供了更好的组织结构和配置管理,是企业级自动化测试项目的推荐实践。虽然管理方式不同,但测试脚本的核心编写逻辑(testcase, MainTest, TestStepPass/Fail)保持一致。通过实例展示了测试驱动的开发/修复流程。