如何为你的Composer包配置代码覆盖率报告_集成Codecov或Coveralls到Composer工作流

穿越時空
发布: 2025-12-05 15:33:11
原创
960人浏览过
首先安装PHPUnit及相关覆盖率工具,配置phpunit.xml生成Clover报告,再通过.coveralls.yml或Codecov Bash上传器在CI中自动提交覆盖率数据至Coveralls或Codecov服务。

如何为你的composer包配置代码覆盖率报告_集成codecov或coveralls到composer工作流

在开发PHP包时,代码覆盖率是衡量测试完整性的重要指标。通过将Codecov或Coveralls集成到Composer工作流中,你可以自动上传测试覆盖率数据,提升项目的可维护性和可信度。下面是如何为你的Composer包配置这一流程。

安装必要的开发依赖

要生成和上传覆盖率报告,你需要先安装PHPUnit以及对应的工具来处理覆盖率数据。

运行以下命令添加所需依赖:

  • composer require --dev phpunit/phpunit(如果你还没安装)
  • composer require --dev php-code-coverage(通常随PHPUnit一起安装)
  • 若使用Coveralls,还需:composer require --dev php-coveralls/php-coveralls
  • 若使用Codecov,则推荐使用官方Bash上传器,无需PHP依赖

配置PHPUnit生成覆盖率报告

在项目根目录的phpunit.xmlphpunit.xml.dist中启用覆盖率输出。

示例配置:

<phpunit>
  <coverage processUncoveredFiles="true">
    <include>
      <directory suffix=".php">src/</directory>
    </include>
    <report>
      <clover output="build/logs/clover.xml"/>
    </report>
  </coverage>
</phpunit>
登录后复制

这会生成Clover格式的覆盖率文件,被Coveralls和Codecov共同支持。

集成 Coveralls

安装完php-coveralls后,在项目根目录创建.coveralls.yml

Docky AI
Docky AI

多合一AI浏览器助手,解答问题、绘制图片、阅读文档、强化搜索结果、辅助创作

Docky AI 87
查看详情 Docky AI
service_name: github-actions
src_dir: src
coverage_clover: build/logs/clover.xml
登录后复制

然后在CI流程(如GitHub Actions)中添加步骤:

  • php vendor/bin/phpunit --coverage-clover build/logs/clover.xml
  • php vendor/bin/php-coveralls -v

确保已设置COVERALLS_REPO_TOKEN环境变量(私有仓库需要)。

集成 Codecov

Codecov更简单,不需要PHP库。只需上传由PHPUnit生成的Clover文件即可。

在CI中执行:

  • php vendor/bin/phpunit --coverage-clover build/logs/clover.xml
  • 下载并运行Codecov Bash上传器:
    curl -s https://codecov.io/bash | bash

它会自动查找build/logs/clover.xml并上传。你也可以通过codecov.yml进一步配置行为。

基本上就这些。只要CI每次运行测试时生成覆盖率报告,并通过脚本上传,你的README就可以加上漂亮的Badge展示当前覆盖率状态了。不复杂但容易忽略细节,比如路径配置或CI权限问题,注意检查日志输出即可。

以上就是如何为你的Composer包配置代码覆盖率报告_集成Codecov或Coveralls到Composer工作流的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号