Composer包测试与Packagist集成的核心是:测试在本地及CI(如GitHub Actions)中运行,Packagist仅自动同步tag触发的元数据更新;需配置PHPUnit、CI流程、语义化tag及自动更新开关。

为 Composer 包编写自动化测试并集成到 Packagist,核心在于:测试本身不依赖 Packagist,而是在你自己的代码仓库中完成;Packagist 只负责自动同步元数据,不运行测试。真正需要集成的是 CI(如 GitHub Actions、GitLab CI)来跑测试,并在通过后自动推送 tag 触发 Packagist 更新。
确保你的 Composer 包根目录下有标准的测试结构:
composer require --dev phpunit/phpunit
tests/ 为测试目录、src/ 为源码自动加载路径tests/ExampleTest.php 中测试某个类是否可实例化在项目根目录新建 .github/workflows/test.yml:
push 和 pull_request,覆盖 main(或默认分支)和 **.php 文件变更actions/checkout@v4 拉取代码shivammathur/setup-php 安装 PHP 和扩展(如 mbstring、xml)composer install --no-interaction --prefer-dist
vendor/bin/phpunit,失败则 CI 报红这样每次提交或 PR 都会自动验证代码质量,避免带 bug 的版本被发布。
Packagist 不主动拉取代码,而是监听你仓库的 tag 推送事件:
git tag v1.0.1 && git push origin v1.0.1
composer.json 并更新包信息(包括 version、description、autoload 等)composer.json 的 commit,且 version 字段需匹配 tag 名(如 "version": "1.0.1" 或留空由 Packagist 推断)进一步提升质量,可在 CI 中补充:
vendor/bin/phpstan analyse src/ tests/
vendor/bin/php-cs-fixer fix --dry-run --diff
--dev 安装,配置进同一份 workflow 即可基本上就这些——测试在本地和 CI 里跑,Packagist 只管“看见 tag 就同步”,不复杂但容易忽略自动更新开关和 tag 命名规范。
以上就是如何为你的 Composer 包编写自动化测试并集成到 Packagist?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号