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

如何通过命令行切换Playwright e2e测试的目标运行环境

Playwright + Cucumber-js 命令行切换测试环境配置方案

cucumber-js 不支持直接传入未注册的自定义--xxx命令行参数,你之前环境变量切换不生效的核心原因有两个:一是环境变量设置命令语法错误,二是配置文件里硬编码了server: 'test',没有读取系统传入的环境变量。按以下步骤修改即可:

1. 修改配置文件,支持读取环境变量

把硬编码的环境地址改成优先读取系统环境变量,无传入值时默认使用测试环境,修改后的配置代码如下:

import { LaunchOptions } from 'playwright';

const browserOptions: LaunchOptions = {
    headless: false,
    slowMo: 0,
    args: []
};

export const config = {
    browserOptions,
    env: {
        server: process.env.SERVER || 'test'
    }
}; 

现有测试步骤代码不需要修改,会自动读取配置里的server值拼接访问地址。

2. 使用对应终端的正确语法传入环境变量

不同终端设置临时环境变量的语法有区别,切换到UAT环境运行的命令如下:

  • Mac/Linux 终端(含WSL、Git Bash):
SERVER=uat npx cucumber-js
  • Windows CMD:
set SERVER=uat && npx cucumber-js
  • Windows PowerShell:
$env:SERVER="uat"; npx cucumber-js

直接执行npx cucumber-js不传参数时,会默认走test环境,和原有运行逻辑一致。

可选优化:配置跨平台兼容的运行脚本

如果需要在多系统下运行,可以安装cross-env统一环境变量设置语法,避免不同终端命令不兼容的问题:

  1. 安装开发依赖:
npm i cross-env -D
  1. 在package.json中添加运行脚本:
{
  "scripts": {
    "test:test": "cross-env SERVER=test npx cucumber-js",
    "test:uat": "cross-env SERVER=uat npx cucumber-js"
  }
}

配置完成后直接执行对应脚本即可启动对应环境的测试:

  • 测试环境运行:npm run test:test
  • UAT环境运行:npm run test:uat

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:39:41