开发者问题收集

Cypress:在 CL 运行时将参数传递到 npm 脚本中

2023-05-03
537

当我通过命令行运行脚本时,我尝试传递参数 param1 param2

这是 test.cy.js 中的代码

it('Clean data', () => {

    const param1 = process.env.npm_config_param1;
    const param2 = process.env.npm_config_param2;

    before(function () {
        cy.visit('/')

        //Login
        cy.get('#username').type(param1)
        cy.get('#password').type(param2)
        cy.get('#loginBtn').click()
 })

我在 package.json 中定义了脚本

 "my-script": "npx cypress run --spec \"test.cy.js\" --param1 value1 --param2 value2"

我在 CL 中运行

npm [email protected] --param2=11111111 run-script my-script

我收到错误 ' error: unknown option: --param1 '

我可以将参数传递到 Cypress 的 npm 脚本中吗?

2个回答

双破折号是将参数传递给内部脚本的正确方法,但它前面需要一个空格。

这个答案 将命令行参数发送到 npm 脚本 展示了很好的示例代码。

您在 package.json 中定义脚本

// no "placeholder" params on the script
"my-script": "npx cypress run --spec \"test.cy.js\""   

您在 CLI 中运行

npm run-script my-script -- --env [email protected],pwd=11111111 

您在测试中使用

const user = Cypress.env('user');   // [email protected]
const pwd = Cypress.env('pwd');     // 11111111 
Joshua.J
2023-05-03

您应该将它们定义为环境变量,并且可以在命令行中使用(请参阅 文档 )。

对于您来说,它将是:

"my-script": "npx cypress run --spec \"test.cy.js\" --env param1=$value1,param2=$value2"

npm run my-script --value1 [email protected] --value2 11111111

您还可以参考此 如何在 Windows 上的 npm 脚本中使用变量

Wandrille
2023-05-03