You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Slather获取Xcode项目特定Group的代码覆盖率?

用Slather仅统计Xcode特定Group的代码覆盖率(排除Swift PM依赖)

只靠ignore配置往往压不住SPM依赖的混入,核心思路是先明确指定要统计的路径,再排除无关内容,以下是可行的配置和步骤:

  1. 明确指定目标Group的路径
    在.slather.yml里用src_paths直接锁定你要统计的特定Group,路径写从项目根目录出发的相对路径:
src_paths:
  - Sources/YourTargetGroup # 替换成你的Group实际路径,比如App/Modules/Login
  1. 精准排除Swift PM相关文件
    配合ignore排除SPM的依赖源码和构建产物,也可以顺便排除测试代码(如果不需要统计的话):
ignore:
  - .build/**/* # 排除SPM构建生成的文件
  - Packages/**/* # 排除SPM拉取的依赖源码
  - Tests/**/* # 可选:排除测试代码文件
  1. 额外锁定目标Target(可选)
    如果你的Group属于某个特定Target,也可以加上targets配置进一步缩小统计范围:
targets:
  - YourAppTargetName # 替换成你的Target名称

完整的.slather.yml示例:

coverage_service: html
xcodeproj: YourProject.xcodeproj # 替换成你的项目文件
scheme: YourAppScheme # 替换成你的Scheme名称
src_paths:
  - Sources/YourTargetGroup
targets:
  - YourAppTargetName
ignore:
  - .build/**/*
  - Packages/**/*
  - Tests/**/*
  1. 验证配置并生成报告
    执行命令前可以先查看Slather识别的源码列表,确认没有混入SPM文件:
slather list-sources --config .slather.yml

确认无误后再生成覆盖率报告:

slather coverage --config .slather.yml

关键提醒

  • src_paths的路径一定要准确,你可以在项目根目录用ls命令核对路径是否正确
  • 如果你的SPM依赖是通过Xcode的Package Dependencies添加的,部分版本的Xcode会把依赖放在DerivedData里,但Slather默认不会扫描这个目录,重点排除Packages和.build即可

内容的提问来源于stack exchange,提问作者CodeSun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:15:33