Paratest安装失败主因是PHP/PHPUnit版本不兼容,需先确认版本再指定兼容版本安装;运行无测试因路径/命名/引导配置不当;类未找到因自动加载缺失;性能不佳常因进程数过多或测试不可并行。
composer
require paratest/paratest 装不上?检查 PHP 和 PHPUnit 版本兼容性
Paratest 不是“装了就能用”的工具,它对底层依赖很敏感。最常见失败是
报错,比如提示找不到满足条件的版本,或者和已装的
冲突。
根本原因在于 Paratest 每个大版本只支持特定范围的 PHPUnit(例如 v7.x 仅支持 PHPUnit 9.5–10.3,v8.x 起才支持 PHPUnit 10.4+),而 Composer 默认按当前 PHP 版本选最新版 Paratest,可能直接越级不兼容。
先运行
和
,确认 PHP ≥ 8.1、PHPUnit ≥ 9.5
查清你用的 PHPUnit 版本后,去
Paratest 官方兼容表
找对应 Paratest 小版本(比如 PHPUnit 10.2 → 用
)
显式指定版本安装:
,避免 Composer 自作主张选错分支
vendor/bin/paratest 不执行测试?确认测试文件结构和 bootstrap 配置
装完后运行
却提示 “No tests executed”,不是命令错了,而是 Paratest 默认只找
文件,且要求它们在标准命名空间下(如
),不识别
这类自定义路径,也不自动加载 Laravel 的
或 Symfony 的
。
确保测试文件名以
结尾(
✅,
❌)
如果测试目录不在默认的
下,加
或
显式指定:
使用 Laravel/Symfony 时,必须传
指向框架启动文件:
(Laravel 项目通常还需加
保持配置一致)
并行跑出 Class not found 错误?Autoload 和 TestCase 继承链要对齐
典型报错是
或
,这说明 Paratest 启动的子进程没正确加载 autoload 或应用上下文。它不像 PHPUnit 那样自动读取
里的
配置段,也不会复用你的
。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
所有测试类必须继承自一个能被 Composer 自动加载的基类(比如
),不能靠
手动引入
检查
的
是否包含测试目录:
,然后运行
若用 Laravel,别在
里写
后又删掉
声明——Paratest 子进程不会解析注释或跳过语法错误
速度没变快甚至更慢?控制进程数和测试粒度
Paratest 默认用
并行进程,但多数中小型项目反而因进程启动开销、I/O 竞争(比如共用 SQLite 内存库或 Redis 实例)导致总耗时上升。
先用
测试基础效果:
避免让大量测试共享同一数据库连接:每个进程应使用独立内存 SQLite(
)或带进程 ID 后缀的临时 DB 名
超长单测(>1s)优先拆分;而大量毫秒级测试(如纯数据断言)更适合并行,别把 100 个 50ms 的测试塞进 1 个
方法里——Paratest 按“方法”而非“数据组”分发
真正卡点往往不在安装命令,而在测试代码是否“可并行”:类是否静态状态污染、是否依赖全局时间函数、是否复用未隔离的单例。这些不修,换再快的 runner 也没用。
composer require paratest/paratestphpunit/phpunitphp --versionphpunit --versionparatest:^7.4composer require --dev paratest/paratest:^7.4vendor/bin/paratest*Test.phpTestsUnitExampleTesttests/Feature/TestCaseKernelTestCaseTest.phpExampleTest.phpexample_test.phptests/--testsuite--pathvendor/bin/paratest --path=tests/Feature--bootstrapvendor/bin/paratest --bootstrap=vendor/autoload.php--configuration=phpunit.xmlClass 'TestsTestCase' not foundClass 'AppModelsUser' not foundphpunit.xmlrequire_once 'tests/TestCase.php'TestsTestCaserequirecomposer.json"autoload-dev""psr-4": {"Tests\": "tests/"}composer dump-autoloadTestCaseuse IlluminateFoundationTestingTestCaseusemin(32, CPU 核心数 × 2)--processes=2vendor/bin/paratest --processes=2 --verbosesqlite::memory:DataProvider