首页电脑使用如何为你的Composer包配置自动化测试和代码覆盖率报告?(GitHub Actions)

如何为你的Composer包配置自动化测试和代码覆盖率报告?(GitHub Actions)

圆圆2025-12-19 19:01:13次浏览条评论

在 GitHub Actions 中为 Composer 包配置自动化测试和覆盖率报告,核心是运行 PHPUnit 测试、生成 HTML 或 Clover 格式报告,并上传至 GitHub Artifacts 或 Coveralls;推荐使用 pcov(PHP 8 兼容)、shivammathur/setup-php 动作及条件化实现覆盖率。

如何为你的composer包配置自动化测试和代码覆盖率报告?(github actions)

直接在 GitHub Actions 中为 Composer包配置自动化测试和代码覆盖率报告,核心是三件事:用phpunit运行测试、生成覆盖率(推荐phpcov或PHPUnit生成HTML报告)、把结果上传到GitHub或存为产物。下面是最实用、开箱即用的配置方式。确保项目已支持PHPUnit和覆盖率工具

你的包必须有phpunit.xml(或phpunit.xml.dist),且已安装PHPUnit(且建议9.5 或 10.x)和 php-coveralls / pcov / xdebug 。推荐优先用 pcov(轻量、快、PHP 8 兼容好):在composer.json 的 require-dev 中加:quot;pcov/pcovquot;: quot;^1.0quot;运行composer install 后,确认 pcov 可用:php -m | php-coveralls / pcov / xdebug 。 grep pcov PHPUnit 配置里启用覆盖率,例如在 phpunit.xml 中加入:redFiles="true">      src/  GitHub Actions 工作流:测试本地覆盖率报告

创建 .github/workflows/test.yml,使用官方 shivammathur/setup-php 动作可一键启用 pcov 并安装好依赖:指定 PHP 版本(如8.1、8.2、8.3)和扩展:extensions: [pcov] 运行composer install →vendor/bin/phpunit --coverage-html=coverage 用 actions/upload-artifact 保存coverage/目录,方便手动下载查看

这样每次推送或 PR 都会生成可浏览的 HTML 覆盖率报告,在 Actions 的“Artifacts”里点开即可看。

AI Sofiya

一款AI驱动的多功能工具 147 查看详情 上传覆盖率到 Coveralls 或 Codecov(可选推荐)

如果想长期追踪趋势、PR中自动评论覆盖率变化,推荐接入 Coveralls(开源项目模式):安装 php-coveralls/php-coveralls(dev-only) 在工作流程中添加步骤:vendor/bin/php-coveralls --coverage_clover=build/logs/clover.xml 确保 PHPUnit 生成 clover 格式:在 phpunit.xml 的下加 lt;reportgt;lt;clover outputfile=quot;build/logs/clover.xmlquot;gt;lt;/clovergt;lt;/reportgt; Coveralls 会自动读取 GITHUB_TOKEN,获得额外的智能跳过低版本 PHP的覆盖率(避免失败)

PCOV 不支持 PHP PHP 7.4–8.1:用 xdebug(加覆盖率: xdebug 到 setup-php) PHP 8.2 :用 pcov(加扩展名: [pcov]) PHP 7.3 及以下:跳过 --coverage-* 参数,只跑测试

可用 GitHub Actions 的 if 表达式控制,例如:if:matrix.php-version gt;= '7.4'。

基本上就这些。不需要自建服务器、不用配webhook,Composer包开箱即得CI/CD级测试反馈和可视化覆盖率——关键是选择工具链(pcov setup-php Coveralls),然后把配置写清楚。

以上就是如何为你的Composer包配置自动化测试和代码覆盖率报告?(GitHub Actions)的详细内容,更多请关注乐哥常识网其他相关文章! 相关标签: php html js git json Composer github 工具 red php Composer json html if include require xml Directory github 自动化 大家都在看:如何为我的Composer包编写自动化测试并集成CI?(GitHub Actions示例)如何使用Composer来管理一个基于WordPress的Headless CMS项目? Composer如何处理PHP版本不兼容的依赖问题 如何使用composer exec命令运行vendor/bin中的工具? 如何在PHP代码中动态调用Composer的Autoloader?

如何为你的Compo
如何查看火车站监控录像 如何查看火车站大屏
相关内容
发表评论

游客 回复需填写必要信息