NodeJS 如何在脚本命令中传递环境变量

vshtjzan  于 2023-04-11  发布在  Node.js
关注(0)|答案(3)|浏览(318)

下面是package.json中的cypress nodeJS脚本命令

"scripts": {
"cy:run": "npx cypress run --browser chrome",
"cy:parallel" : "cypress-parallel -s cy:run -t 4 -d cypress/e2e/features/ -m false -a '\"--env ENV=${ENVI}\"'" 
}

-a是一个动态参数,我想在运行ENVI=QAENVI=LIVE等测试时传递它
我试过以下的事情,但没有为我工作

SET ENVI=QA
npm run cy:parallel

ENVI=QA npm run cy:parallel
$ENVI=QA npm run cy:parallel
请分享从命令行传递参数的正确方法

wdebmtf2

wdebmtf21#

一种方法是使用CYPRESS_前缀。
为了使事情更简单(独立于操作系统),使用包cross-env

安装

npm install --save-dev cross-env

package.json

"scripts": {
  "cy:run": "cross-env CYPRESS_ENVI=QA cypress run",
  ...
}

用一个简单的测试来测试:

it('checks cross-env has set up CYPRESS_ENVI', () => {
  expect(Cypress.env('ENVI')).to.eq('QA')                // passes
})
wgx48brx

wgx48brx2#

它为我工作与下面的命令:
设置环境变量的值如下:
$env:ENVI=QA(在Windows上)
并按如下方式更改脚本命令:
使用ENV=%ENVI%代替ENV=${ENVI}

"cy:parallel" : "cypress-parallel -s cy:run -t 4 -d cypress/e2e/features/ -m false -a '\"--env ENV=%ENVI%\"'"
vlf7wbxs

vlf7wbxs3#

可以使用--将npm命令与cypress命令分开,并将其后的所有内容作为参数传递给cypress-parallel命令:

npm run cy:parallel -- --env ENV=QA

相关问题