如何通过命令行向Cypress的npm脚本传递参数?解决未知选项错误
解决Cypress测试通过npm脚本传递登录参数的问题
你遇到的错误是因为npm本身不识别--param1这类自定义选项,要实现参数传递需求,有两种可靠的方式:
方法1:使用npm的--分隔符传递参数
这种方式是把参数传递给npm脚本本身,再在package.json的脚本中把参数转为环境变量:
- 修改package.json中的脚本:
{ "scripts": { "my-script": "param1=$1 param2=$2 cypress run" // Linux/macOS环境 // Windows cmd环境请改成:"my-script": "set param1=%1 && set param2=%2 && cypress run" // Windows PowerShell环境请改成:"my-script": "$env:param1=$args[0]; $env:param2=$args[1]; cypress run" } }
- 运行命令时,用
--分隔npm命令和要传递的参数:
npm run my-script -- email111@gmail.com 11111111
- 在test.cy.js中依然通过
process.env.param1和process.env.param2获取参数。
方法2:直接在命令行设置环境变量
这种方式更直接,不需要修改脚本,直接在运行命令前设置环境变量:
Linux/macOS终端:
param1=email111@gmail.com param2=11111111 npm run my-script
Windows cmd:
set param1=email111@gmail.com && set param2=11111111 && npm run my-script
Windows PowerShell:
$env:param1='email111@gmail.com'; $env:param2='11111111'; npm run my-script
这样在test.cy.js中同样可以通过process.env.param1和process.env.param2读取到参数值。
内容的提问来源于stack exchange,提问作者HNhu
相关产品推荐
相关产品推荐

