如何使用 Cypress.io 将 baseUrl 作为参数发送

Dar*_*pto 8 cypress

我正在研究从 Protractor 切换到 Cypress.io。我已经启动并运行了一些测试,但是,我希望能够baseUrl像使用量角器一样将其作为参数发送。

我试过了:

$ npm run cypress:open --config "baseUrl=myUrl" -- 仍然使用我的配置文件中的 baseUrl。

$ npm run cypress:open --env "baseUrl=myUrl" -- 仍然使用我的配置文件中的 baseUrl。

以及许多其他事情,但没有一个工作得很好。

我希望能够将参数传递给我的命令,这使我可以灵活地选择运行测试的环境。我可以使用 Protractor 执行此操作,使用如下命令:

$ ng e2e --suite testSuite --baseUrl myUrl

Cypress.io 的等价物是什么?

Bre*_*dan 13

您必须设置 env 变量 CYPRESS_baseUrl

CYPRESS_baseUrl=[your baseUrl] npm run cypress:open 应该为你做


Ere*_*hen 10

布伦丹的回答是正确的。我想补充一点

$ npm run cypress:open --config "baseUrl=myUrl"
Run Code Online (Sandbox Code Playgroud)

可能无法工作,因为您尝试将某些配置传播到 package.json 内的命令中。如果你这样做,例如:

$ ./node_modules/.bin/cypress run --config baseUrl=myUrl
Run Code Online (Sandbox Code Playgroud)

它应该工作得很好。

知道这一点很有好处,因为它还可以让您使用其他 CLI 选项(您事先不知道这些选项)。

PS:--env不适用于baseUrl,因为 baseUrl 是内置配置值而不是常规环境变量。

  • 使用参数调用预定义 npm 脚本的正确方法是“npm run cypress:run -- --config baseUrl=myUrl”(注意额外的“--”) (2认同)

小智 6

我认为正确的方法是:

$ npm run cypress:open -- --config "baseUrl=myUrl"
Run Code Online (Sandbox Code Playgroud)

否则,将 config 参数传递给 npm 而不是 cypress。

祝你好运!