CAPL 编程 - 第 35 期:测试模块 (Test Module) - 用例组织与报告描述
目标: 本期在之前 Test Module 基础上,进一步学习如何组织测试模块内的测试用例,以及如何通过 CAPL 函数丰富测试报告的内容,使其更具可读性和信息量。
1. 回顾:测试模块基础
- 一个 Test Module 关联一个
.can文件。 .can文件中包含多个用例函数(使用testcase关键字定义)。void MainTest()函数负责调用testcase函数,控制执行流程。- 测试步骤结果通过
TestStepPass/Fail记录在报告中。
2. 使用测试组 (TestGroup) 组织测试用例
- 目的: 当一个 Test Module 包含大量测试用例时(例如,测试一个 ECU 的不同功能),使用测试组可以逻辑地对
testcase进行分类,提高脚本的可读性和测试报告的结构化程度。 - 实现方式: 在
MainTest函数内部,使用以下函数包裹相关的testcase调用:TestGroupBegin(char groupID[], char description[])- 功能: 标记一个测试组的开始。
- 参数:
groupID: 字符串,测试组的唯一标识符或名称(例如 "Group 1", "Wiper Function Tests")。会显示在报告的层级结构中。description: 字符串,对该测试组目的的详细描述。
TestGroupEnd()- 功能: 标记当前测试组的结束。
- 示例用法 (在
MainTest中):Code snippetvoid MainTest() { TestGroupBegin("Group 1", "Tests for Feature A"); MyTestCase01(); // Belongs to Group 1 MyTestCase02(); // Belongs to Group 1 TestGroupEnd(); TestGroupBegin("Group 2", "Tests for Feature B"); MyTestCase03(); // Belongs to Group 2 MyTestCase04(); // Belongs to Group 2 TestGroupEnd(); // ... } - 效果:
- 在 CANoe 的 Test Execution 面板和 Test Report Viewer 中会显示出明确的组结构,便于导航和查看。
- 支持嵌套(虽然本期未详细展开),可以创建更复杂的层级结构。
3. 丰富测试报告信息
- 目的: 默认情况下,测试报告中的模块和用例标题可能只是文件名或函数名。通过添加自定义标题和描述,可以使报告更易于理解,提供更多上下文信息。
- 添加模块信息 (通常在
MainTest开头调用):TestModuleTitle(char title[])- 功能: 设置整个 Test Module 在报告中显示的标题。
- 示例:
TestModuleTitle("BCM Feature Test Suite");
TestModuleDescription(char description[])- 功能: 为整个 Test Module 添加一段描述性文字,显示在报告的概览部分。
- 示例:
TestModuleDescription("This module tests basic functions of the Body Control Module.");
- 添加用例信息 (在对应的
testcase函数内部调用):TestCaseTitle(char testCaseID[], char title[])- 功能: 设置单个
testcase在报告中显示的标题。 - 参数:
testCaseID: 字符串,测试用例的唯一标识符(如 "TC_BCM_001"),会显示在报告中,有助于追溯。title: 字符串,该测试用例的描述性标题。
- 示例 (在
testcase MyTestCase01()内):TestCaseTitle("TC01", "Verify Wiper Low Speed");
- 功能: 设置单个
TestCaseDescription(char description[])- 功能: 为单个
testcase添加详细描述,解释测试目的或步骤,显示在报告的用例详情部分。 - 示例 (在
testcase MyTestCase01()内):TestCaseDescription("This test checks if the wiper operates correctly at low speed setting.");
- 功能: 为单个
- 效果:
- 测试报告的对应位置会显示用户指定的中文(或其他语言)标题和描述,取代或补充默认标识符。
- 报告内容更丰富,更易于团队成员或非技术人员理解测试范围和结果。
4. 实例总结 (来自讲座)
- 讲座演示了如何将 5 个
testcase函数分别归入 "Group 1" 和 "Group 2"。 - 在
MainTest中调用TestModuleTitle和TestModuleDescription设置模块信息。 - 在每个
testcase函数内部调用TestCaseTitle(含 ID) 和TestCaseDescription设置用例信息。 - 执行后,展示了 Test Execution 面板和 Test Report Viewer 中如何体现这些分组和自定义的文本信息,使结构和内容更加清晰。
总结: 本期学习了通过 TestGroupBegin/End 在 MainTest 中组织测试用例,以及通过 TestModuleTitle/Description 和 TestCaseTitle/Description 函数来增强测试报告的可读性和信息量。这些方法对于编写结构清晰、易于理解和维护的大型自动化测试项目至关重要。