在软件质量检测过程中,代码覆盖率可以帮助开发人员了解测试代码对项目源码的覆盖情况。使用SonarQube查看覆盖率时,很多问题并不来自SonarQube本身,而是测试工具生成的覆盖率文件没有正确传递,或者项目扫描配置存在遗漏。例如测试没有执行、报告文件路径错误、扫描参数未配置等情况,都可能导致覆盖率页面没有数据显示。因此,在设置SonarQube代码覆盖率时,需要先完成测试覆盖率采集,再将生成的数据交给SonarQube分析。
一、SonarQube怎么设置代码覆盖率
SonarQube本身主要负责读取覆盖率报告,并不会直接执行单元测试。因此,需要先通过测试框架生成覆盖率文件,再配置扫描过程读取相关数据。
1、准备代码测试环境
进行覆盖率分析前,需要确保项目已经具备测试条件。
①、打开【项目目录】。
②、确认测试代码存在。
③、配置测试运行环境。
④、执行单元测试。
⑤、生成覆盖率报告。
⑥、检查报告文件。
覆盖率数据来源于测试工具生成的报告文件,如果测试阶段没有产生数据,SonarQube无法展示覆盖率。
2、配置覆盖率报告路径
生成报告后,需要告诉SonarQube报告文件的位置。
①、打开【项目配置文件】。
②、进入【扫描参数】。
③、设置覆盖率报告路径。
④、填写报告文件位置。
⑤、保存配置内容。
⑥、重新执行扫描。
报告路径需要和实际生成位置保持一致,否则扫描过程中无法读取覆盖率数据。
3、配置项目扫描参数
项目扫描时,需要确保相关参数已经加载。
①、打开【项目配置】。
②、检查【项目标识】。
③、确认源码目录。
④、确认测试目录。
⑤、检查覆盖率参数。
⑥、保存扫描配置。
扫描配置错误时,可能出现代码分析正常,但覆盖率数据缺失的情况。
4、执行代码扫描
完成配置后,需要重新运行SonarQube分析。
①、打开【命令窗口】。
②、进入项目目录。
③、执行测试命令。
④、生成覆盖率文件。
⑤、执行【SonarQube扫描】。
⑥、等待分析完成。
扫描结束后,可以进入项目页面查看覆盖率结果。
5、查看覆盖率结果
分析完成后,需要确认SonarQube是否读取到覆盖率数据。
①、打开【项目页面】。
②、进入【代码覆盖率】。
③、查看覆盖率数值。
④、检查覆盖文件。
⑤、确认分析结果。
二、SonarQube覆盖率数据无法显示如何处理
覆盖率没有显示时,需要检查测试报告生成、扫描配置以及项目分析过程。实际使用中,代码扫描正常并不代表覆盖率配置正确。
1、检查覆盖率报告是否生成
没有报告文件时,SonarQube无法读取覆盖率信息。
①、打开【项目目录】。
②、查找覆盖率报告文件。
③、确认文件生成时间。
④、检查报告内容。
⑤、重新执行测试。
2、检查报告路径配置
报告存在但页面没有数据时,需要确认路径是否正确。
①、打开【项目配置文件】。
②、查看覆盖率路径。
③、比较实际文件位置。
④、修改错误路径。
⑤、重新运行扫描。
3、检查测试是否执行
部分项目只进行了代码扫描,没有运行测试流程。
①、打开【测试配置】。
②、查看测试执行记录。
③、确认测试任务。
④、重新运行测试。
⑤、生成覆盖率文件。
4、检查扫描日志
扫描日志可以查看SonarQube是否成功读取覆盖率信息。
①、打开【扫描日志】。
②、查看分析过程。
③、搜索覆盖率信息。
④、检查错误提示。
⑤、重新执行分析。
5、检查插件和版本配置
不同语言项目需要对应分析插件支持。
①、打开【系统管理】。
②、查看插件列表。
③、确认语言插件状态。
④、检查版本信息。
⑤、更新相关配置。
三、SonarQube覆盖率配置调整后如何确认
完成覆盖率配置修改后,需要重新验证测试报告和分析结果。实际使用过程中,覆盖率显示正常并不代表配置没有问题,还需要确认数据来源是否正确。
1、检查覆盖率结果
①、打开【项目主页】。
②、查看【代码覆盖率】。
③、检查覆盖比例。
④、确认数据更新时间。
⑤、记录分析结果。
2、确认报告读取情况
①、打开【扫描日志】。
②、查看报告加载信息。
③、确认文件路径。
④、检查读取状态。
⑤、保存日志记录。
3、保存项目配置
①、打开【项目配置文件】。
②、记录覆盖率参数。
③、保存修改内容。
④、更新配置说明。
⑤、完成配置整理。
总结
SonarQube代码覆盖率配置过程中,测试报告生成、路径设置以及扫描参数都会影响最终显示结果。实际使用时,覆盖率数据无法显示,需要从测试执行情况、报告文件以及扫描日志几个方面进行检查。完成配置调整后,再重新运行测试和代码分析,可以确认覆盖率数据是否已经正确传递到SonarQube中。希望本文能够帮助使用SonarQube的人员,在设置代码覆盖率和处理数据缺失问题时减少排查时间。