很多人说的“报告没生成”,其实是把两件事混在了一起:一种是在Squish IDE里只看到【Test Results】视图,但没有导出到文件;另一种是命令行跑了用例,结果被默认写到标准输出,你以为会自动生成HTML或XML。按下面的顺序把报告来源、输出位置、生成器类型理清,再去改配置,会更快把问题收敛。
一、Squish报告不生成怎么办
先确定你是IDE里没导出,还是CLI里没指定生成器,再做针对性处理。
1、先确认报告来源
你如果是在Squish IDE里点【Run】运行,用例结果会出现在底部【Test Results】视图里,这本身就是一份运行报告,但它不会自动变成HTML文件。
2、IDE里用导出把结果落到文件
在【Test Results】视图中对结果树右键,选择【Export Results】把结果导出成文件;导出后再到你选择的目录确认是否生成了压缩包或XML结果文件。
3、命令行没写文件多半是正常现象
用squishrunner从命令行运行时,默认报告生成器会把结果打印到stdout,除非你显式指定--reportgen和输出目的地,否则你可能只看到控制台日志,看不到文件。
4、检查--reportgen写法与输出路径权限
--reportgen的写法是生成器名加逗号再加输出目录或输出文件路径,目录型生成器需要目录存在且可写;CI环境里尤其要确认工作目录对Runner账户有写权限。
5、别同时启用多个目录型生成器
Squish支持同时启用多个报告生成器,但目录型生成器最多只能有一个;如果你同时配了两个目录型输出,常见结果是其中一个被覆盖或直接不生成。
6、先用最小例子做一次验收
先只跑一个小套件并指定一个干净目录输出,例如先生成XML或HTML之一,确认文件能落盘后,再把同样的写法迁回到Jenkins或GitLab流水线,避免把环境问题和参数问题叠在一起查。
二、Squish报告模板怎么选择
Squish里更准确的叫法是报告生成器类型,你选的是输出格式与用途,而不是文档排版模板。选择时按“给谁看、给什么系统用、需要目录还是单文件”三条线去定。
1、先列出你当前版本支持的生成器
在命令行执行squishrunner--help查看可用的report generators列表,再决定用哪一种或组合几种。
2、要给人读用HTML类
想让测试人员直接打开浏览器看步骤、失败信息与截图,优先选html或web一类目录型输出,便于归档成一个报告目录。
3、要接CI看趋势用JUnit类
想让Jenkins、GitLab等CI直接识别测试结果并展示在流水线页面,优先选junit一类单文件输出,通常更适合机器消费与聚合。
4、要二次处理用XML类
需要把结果喂给自研平台或做更细的数据分析时,选xml并指定版本号与输出目录,后续解析更稳定。
5、要集中管理用Test Center类
团队想统一存档、检索与报表分析,可以用testcenter生成器把结果推到Squish Test Center,再由平台做可视化与历史对比。
三、Squish报告落地更稳的做法
把输出目录、生成器组合、导出习惯固定下来,后面界面和环境变化时,你只需要改一两处配置。
1、固定一个结果根目录并纳入制品归档
在流水线里约定一个results目录专门存放报告与截图,运行结束后把该目录作为Artifacts上传,避免报告生成了但被工作区清理掉。
2、组合生成器时先定一个目录型再加若干文件型
例如用一个html目录型供人工查看,再加一个junit文件型供CI展示,组合前先确认只有一个目录型生成器。
3、IDE里养成导出习惯方便复盘
每次定位问题时,把【Test Results】用【Export Results】导出成可分享的结果包,便于跨机器复现与追溯失败截图和对象信息。
4、报告不见先看stdout与Recent Results
如果CLI没有落盘文件,先回看控制台stdout是否已经有完整的通过失败统计;如果IDE里结果消失,先用【Recent Results】下拉加载最近一次运行结果再导出。
总结
Squish报告不生成时,先分清你是在IDE里没导出,还是命令行默认写到了stdout;需要文件就用--reportgen指定生成器与输出目的地,并注意目录权限与目录型生成器只能有一个。报告模板的选择本质是选输出格式与用途,HTML偏人工阅读,JUnit偏CI集成,XML偏二次处理,Test Center偏集中管理,把这套口径定下来后,后续维护会轻很多。