在单元测试规模逐渐扩大并接入持续集成环境之后,TESSY的批量执行应该如何配置,以及批量执行途中停止时又该如何定位,便成了经常需要处理的问题。批量执行并不只是同时选中多个测试对象去运行,它还涉及测试范围的确定、环境配置、目标连接、报告输出以及异常停止策略等多个方面。当运行过程在中途停下来时,也需要先判断究竟是因为测试失败触发了终止条件,还是某个测试对象超时,又或者是编译、下载、调试器连接或目标机通信这些环节出现了问题。
一、TESSY批量执行怎么配置
在开始批量执行之前,应当先确保每一个单独的测试对象都能够顺利完成分析、编译、下载和执行的完整流程。如果单个测试的流程本身还没有跑通,就直接去扩大执行范围,批处理日志中就会混入大量重复出现的错误,这样一来反而更难判断问题的真正来源。
1、确定批量执行范围
在【Batch Test】中选择需要执行的项目、模块、测试对象和测试操作,并设置是否生成测试报告。
批处理的范围不适合一开始就覆盖整个工程,可以先选择一个模块来验证编译器、目标环境和报告路径是否正常,再逐步将其他模块加入进来。对于那些依赖不同目标板或不同编译配置的测试对象,也不建议放进同一个批次中直接执行。
2、保存批处理配置
将确认后的操作保存为【TBS批处理文件】,固定需要执行的测试和报告任务。
TBS文件适合放在项目目录下,并纳入版本管理。在用于自动化执行时,要注意不要在报告名称和输出目录中使用只适用于某一台计算机的绝对路径,否则切换到构建服务器后,就可能找不到项目或输出位置。TESSY的批处理功能可以将测试执行与报告生成组合在一起,并通过已保存的批处理设置进行重复运行。
3、配置命令行执行顺序
在无界面执行的情况下,一般需要按顺序启动TESSY服务、连接命令行客户端、恢复项目数据库、执行TBS任务,然后断开连接并关闭服务。每一条命令执行之后,都应当检查其返回码,一旦前面的步骤已经失败,就应立刻停止后续操作,以避免最后只看到报告缺失,却不清楚实际失败发生在哪个阶段。
二、TESSY批量执行中途停止怎么定位
批量任务中途停止后,应当先查看停止的具体位置以及最后一条有效日志的内容,而不是马上重新运行整个批次,否则很容易覆盖掉现场的遗留信息,而且再次执行时仍可能停在同一个地方。
1、检查停止策略是否被触发
查看环境设置中是否启用了【Stop On First Failure】。
如果启用了这项设置,那么只要出现第一个测试结果失败,后续的测试就可能不再继续执行。这种策略适合需要快速阻断构建的场景,但不适合需要一次性收集全部失败结果的回归测试。如果每次都是在首个失败用例之后结束,就应该先检查这一项,而不是直接怀疑TESSY异常退出。
2、检查测试对象是否执行超时
查看【Execution Timeout】的配置值,并核对停止位置是否总是集中在同一个测试对象。
超时时间一旦到达,当前测试对象的执行便会被中止,后续行为取决于批处理和环境的具体配置。常见原因包括被测函数进入了死循环、桩函数一直没有返回、目标板失去响应,或者调试器始终在等待某个停止条件。此时可以单独运行这个测试对象,将范围进一步缩小到具体的测试用例。
3、检查编译、下载和目标连接日志
如果停止之前没有产生任何测试结果,就应重点查看代码生成、编译链接、测试驱动下载以及调试器连接这几个阶段。编译错误通常会留下明确的文件和行号;下载失败则更可能与目标复位、通信接口或地址配置有关;连接突然断开时,则需要检查目标供电、调试器进程以及是否存在并发占用的情况。
三、TESSY批量任务怎么提高稳定性
批量执行的稳定性不能只靠增加超时时间来保证。当测试对象之间存在状态残留、资源冲突或环境差异时,即便每个测试单独运行都能通过,连续执行时仍然可能出现失败。
1、隔离容易互相影响的测试
对于涉及全局变量、静态状态、硬件寄存器和共享通信资源的测试对象,应当检查它们的前置条件以及运行结束后的清理过程。必要时可以让特定的测试对象单独下载并执行,使每一组测试都从一个明确的初始状态开始。这样做虽然会延长执行时间,但能够减少前一个测试对后一个测试的干扰。
2、分批定位不稳定模块
可以将大规模的批量任务按照模块、目标环境或执行时长拆分成若干小批次。如果某一批次执行失败,只需要重跑对应的范围,而不必重新执行全部测试。对于那些偶发停止的问题,还可以连续运行同一个小的批次,观察它是能够稳定复现,还是与目标环境当时的状态有关。
3、保留运行证据
建议保存命令返回码、TESSY日志、编译输出、报告文件和停止时间。在持续集成环境中,还应当固定报告的输出位置,并在任务结束后检查报告是否真实生成。如果仅仅将命令进程退出当作成功的依据,就有可能遗漏测试未执行完整或报告生成失败的情况。
总结
TESSY批量执行怎么配置TESSY批量执行中途停止怎么定位,关键在于先用Batch Test确定范围并保存TBS配置,再通过清晰的命令顺序和返回码检查来完成自动执行。中途停止时,应当依次排查首个失败停止策略、执行超时以及编译、下载、目标连接方面的问题,再通过测试隔离、模块分批和日志留存来缩小范围。这样既能让TESSY的批量回归稳定运行,也能在失败后迅速找到具体的测试对象和停止阶段。