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

Docker中直接执行命令时Playwright有头测试挂起,npm脚本方式正常

Docker Compose中直接执行Playwright有头测试命令卡顿的问题

问题背景

尝试在Docker环境中以有头模式运行Playwright测试时,最初遇到报错,Playwright官方建议执行以下命令:

xvfb-run npx playwright test tests/mailfence/test-scenario.spec.ts --headed

两种配置的差异结果

  • 正常运行的配置方式:在Docker Compose文件中设置command: npm run mailfence,同时在项目的package.json的scripts字段中定义:

    "scripts": {
      "mailfence": "xvfb-run npx playwright test tests/mailfence/test-scenario.spec.ts --headed"
    }
    

    这种配置下,测试全程运行正常。

  • 出现卡顿的配置方式:直接在Docker Compose的command字段中写入完整的测试命令:

    command: xvfb-run npx playwright test tests/mailfence/test-scenario.spec.ts --headed
    

    此时测试会卡在某个阶段无法继续执行。

原因分析

Docker Compose直接执行命令时,是在容器的默认shell环境中运行,可能缺少npm scripts执行时自动加载的项目环境变量、工作目录上下文或shell配置。而通过npm run执行命令时,npm会自动进入项目根目录,并加载项目相关的环境配置,确保Playwright测试能获得正确的运行上下文。

解决方案

保持通过npm scripts中转执行测试命令的配置方式,避免直接在Docker Compose的command字段中写入完整命令,以此规避环境上下文差异带来的执行卡顿问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 00:22:04