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

How do I send baseUrl as a parameter with Cypress.io

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

我试过:

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

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

和许多其他东西,none 其中工作得很好。

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

$ ng e2e --suite testSuite --baseUrl myUrl

Cypress.io 的等价物是什么?

您必须设置环境变量CYPRESS_baseUrl

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

Brendan 的回答是正确的。 我想补充一点

$ npm run cypress:open --config "baseUrl=myUrl"

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

$ ./node_modules/.bin/cypress run --config baseUrl=myUrl

它应该工作得很好。

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

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

我认为正确的做法是:

$ npm run cypress:open --config "baseUrl=myUrl"

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

祝你好运!

我所做的只是:

export CYPRESS_BASE_URL=SOME_OTHER_URL
yarn cypress run

这将覆盖 baseUrl 配置。参见:https://docs.cypress.io/guides/guides/environment-variables.html#Overriding-Configuration