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

问题描述 投票:0回答:5

我正在研究从 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 的等效项是什么?

cypress
5个回答
21
投票

你必须设置环境变量

CYPRESS_baseUrl

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


14
投票

我认为正确的做法是:

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

否则,config 参数将传递给 npm 而不是 cypress。注意额外的

--

祝你好运!


10
投票

布伦丹的答案是正确的。 我想补充一下

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

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

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

应该可以正常工作。

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

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


1
投票

我所做的很简单:

export CYPRESS_BASE_URL=SOME_OTHER_URL
yarn cypress run

这将覆盖

baseUrl
配置。请参阅:https://docs.cypress.io/guides/guides/environment-variables.html#Overriding-Configuration


0
投票

我知道这有点旧,并且随着时间的推移事情已经发生了变化,但是将以下内容添加到 package.json 对我有用(在 8080 上本地运行):

"cy:run": "npx cypress run --spec cypress/e2e/stt/* --config baseUrl=http://localhost:8080"

然后从命令提示符运行:

npm run cy:run

显然,您可以在 package.json 中添加更多条目来引用不同的服务器(即 dev、stage、prod)

© www.soinside.com 2019 - 2024. All rights reserved.