You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PestPHP 1.21运行测试失败,报“Exclusive locks are not supported for this stream”错误

解决PestPHP运行报错Exclusive locks are not supported for this stream的方法
  • 检查文件系统兼容性
    这个错误大概率出现在不支持文件独占锁的文件系统上,比如NFS共享目录、SMB挂载盘、WSL下的Windows原生目录等。如果项目放在这类路径下,将代码迁移到本地原生文件系统(如Linux的ext4、Windows的NTFS)后重新测试。

  • 禁用Pest的文件锁功能
    Pest的进程管理逻辑依赖文件锁,可通过两种方式禁用:

    1. 临时生效:运行测试时携带环境变量
      PEST_DISABLE_FILE_LOCK=true ./vendor/bin/pest
      
    2. 永久配置:在项目根目录创建pest.php,添加以下代码
      <?php
      
      use Pest\Pest;
      
      Pest::configure()->disableFileLock();
      
  • 更新Pest到同分支最新版本
    1.21分支的后续小版本可能修复了锁相关兼容问题,执行更新命令:

    composer update pestphp/pest --with-all-dependencies
    
  • 验证环境锁功能
    创建测试脚本test-lock.php,检查当前环境是否支持文件锁:

    <?php
    $file = fopen(__DIR__ . '/temp.lock', 'w');
    if (flock($file, LOCK_EX | LOCK_NB)) {
        echo "文件锁可用\n";
        flock($file, LOCK_UN);
    } else {
        echo "文件锁不可用:" . error_get_last()['message'] . "\n";
    }
    fclose($file);
    unlink(__DIR__ . '/temp.lock');
    

    运行php test-lock.php,若同样报错,需调整环境(比如更换文件系统、修改PHP流配置)。

  • 强制单进程运行测试
    并行测试可能触发锁冲突,尝试单进程模式:

    ./vendor/bin/pest --parallel=1
    

内容的提问来源于stack exchange,提问作者Willower

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:30:54