如何为 Cypress.io 设置环境

How to setup environments for Cypress.io

我正在为我公司的网络应用程序设置测试套件。我们当时使用四种环境(Production、Regression、Staging、Development)。我在我的 cypress.json 文件中设置了环境变量,但我希望能够将我的环境从回归切换到开发,并强制 cypress 将 baseURL 更改为我的新环境并指向不同的 cypress.json 具有开发变量的文件。 cypress.io 上关于环境的文档让我有点困惑,我不知道从哪里开始。

我使用 package.json 的脚本在不同的环境中使用 cypress 运行ning。您可以在 cypress 命令之前传入环境变量。它看起来像:

"scripts": {
  "cypress:open:dev": "CYPRESS_BASE_URL=http://localhost:3000 cypress open",
  "cypress:open:prod": "CYPRESS_BASE_URL=http://mycompanydomain.com cypress open",
  "cypress:run:dev": "CYPRESS_BASE_URL=http://localhost:3000 cypress run",
  "cypress:run:prod": "CYPRESS_BASE_URL=http://mycompanydomain.com cypress run",
}

如果你想制作 4 个单独的 cypress.json 文件,你可以让它们都根据环境命名,当你 运行 一个与该环境相对应的 npm 脚本时,只需将其复制即可主要 cypress.json 当你 运行 测试时。

Files: 
./cypress.dev.json
./cypress.prod.json
./cypress.staging.json
./cypress.regression.json

npm scripts:
"scripts": {
    "cypress:run:dev": "cp ./cypress.dev.json ./cypress.json; cypress run;"
} 

更新:

我在 cypress 仍处于测试阶段时写了这篇文章。使用配置标志似乎是一个更简洁的选项:

https://docs.cypress.io/guides/guides/command-line.html#cypress-run

    npm scripts:
    "scripts": {
        "cypress:run:dev": "cypress run -c cypress.dev.json;"
    } 

您可以将要与 --config-file 参数一起使用的配置文件传递为:

语法:-

cypress open --config-file <config-file-name>

如果你有不同的环境文件,那么它应该是:

  "scripts": {
    "cypress:open:prod": "cypress open --config-file production-config.json",
    "cypress:open:stag": "cypress open --config-file staging-config.json",
  },

如果你看到上面的命令,我们告诉 cypress 将 production-config.json 文件用于 prod 环境,类似地 staging-config.json 用于 stag 环境。