composer install 默认不装 phpunit,因其在 require-dev 中,需加 --dev 参数或确保 composer.lock 包含该包;装 beta 版须显式加 @beta 标识并检查 php 版本兼容性;执行时应使用 ./vendor/bin/phpunit 或配置 composer scripts。

composer install 装不到 phpunit 测试包?先确认是否在 dev 环境
Composer 默认只安装 require 里的生产依赖,phpunit 这类工具默认写在 require-dev 里,不加 --dev 或没开 dev 模式就装不上。
- 运行
composer install前,检查composer.json是否真有"phpunit/phpunit": "^10"在require-dev下(不是require) - 如果只跑过
composer install --no-dev,那phpunit根本不会解包,删掉vendor/重装时也得带上--dev -
composer install会读composer.lock,如果 lock 文件里没记录测试包,哪怕composer.json有,也不会装——此时用composer update phpunit/phpunit强制刷新依赖
想装 phpunit 的 beta 版,但 composer require 报错或装了旧版
beta 版本属于“不稳定版本”,Composer 默认只接受 stable,不显式声明稳定性,它就自动跳过 beta、rc、dev 这类标签。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 直接指定版本并带稳定性标识:
composer require phpunit/phpunit:^10.5@beta(注意@beta不能省) - 如果报
Your requirements could not be resolved,大概率是当前 PHP 版本不满足 beta 版的php约束,用composer show phpunit/phpunit 10.5.0-beta1查它的requires php字段 - 全局设置允许 beta 不推荐:改
config.json加"minimum-stability": "beta"容易污染其他项目,单次命令控制更安全
composer require 装完 phpunit 却执行不了?路径和入口搞错了
phpunit 装在 vendor/bin/phpunit,不是全局命令;没配 vendor/bin 到 $PATH 就只能敲全路径,或者用 Composer 的脚本机制。
- 别直接敲
phpunit,试试./vendor/bin/phpunit(Linux/macOS)或vendor\bin\phpunit(Windows) - 更稳妥的方式是写进
composer.json的scripts:"test": "phpunit",然后用composer test启动——这样自动走 vendor binpath - 如果提示
Class 'PHPUnit\Framework\TestCase' not found,说明 autoloader 没生效,确认vendor/autoload.php已被引入,且没手动删过vendor/composer/autoload_*.php
CI 环境里 composer install 忽略了 require-dev,但测试又必须跑
很多 CI 配置(比如 GitHub Actions 默认的 composer/install action)为了提速会加 --no-dev,结果 phpunit 直接消失,测试脚本当场失败。
- CI 脚本里明确加上
--dev:例如composer install --no-interaction --optimize-autoloader --dev - 如果用的是
composer install --prefer-dist,确保镜像源支持 beta 包下载(某些私有源会过滤非 stable 包),可临时切回 packagist.org:composer config --global repo.packagist.org composer https://packagist.org - beta 版本可能没有 dist 包(只有 source),遇到
Failed to download ... no matching package found,加--prefer-source强制克隆仓库
require-dev 和 --dev 的对应关系,比想象中更容易漏掉。










