众所周知,Laravel 和 PHPUnit 在单个进程中顺序执行测试。但是,单个进程不会使用多个内核;因此,你的测试执行会严重受限!
为了缓解此问题,我们很高兴地宣布 Laravel 中现已推出并行测试。从 Laravel v8.25 开始,你可以使用内置的 test
Artisan 命令在多个进程中同时运行测试,以显著减少运行整个测试套件所需的时间。
Laravel 使用基于 Paratest 构建的解决方案,自动处理为每个并行进程创建和迁移测试数据库。当然,其他 Laravel 测试工具(如 Storage::fake
)也可以在并行测试中使用。
每个单独的测试套件都将从并行测试中获得不同的好处。在上方的示例中,测试执行时间从 13 秒减少到 2 秒 - 速度提升了 5 倍。
1:首先确保你运行的是最新版本的 Collision 和 Laravel 8
composer update nunomaduro/collision laravel/framework
2:然后,在执行 test
Artisan 命令时包含 --parallel
选项
php artisan test --parallel
务必在 laravel.com/docs 查看并行测试文档。在那里,你将找到可用的并行测试选项以及有关如何准备某些资源的信息,以便多个测试进程可以安全地使用它们。如果你好奇,还可以查看将并行测试添加到 Laravel 中的 拉取请求。
我们希望你喜欢 Laravel 的这一新功能。测试愉快!