如何通过命令行在 cypress.json 文件中设置环境变量? (Angular CLI - nrwl nx)

Posted

技术标签:

【中文标题】如何通过命令行在 cypress.json 文件中设置环境变量? (Angular CLI - nrwl nx)【英文标题】:How to set environment variables in cypress.json file through command line? (Angular CLI - nrwl nx) 【发布时间】:2020-02-14 19:41:30 【问题描述】:

我是 cypress 的新手,每天都在学习,我们正在尝试在 angular 项目中使用 cypress 实现 e2e 测试。

当我想通过命令行在 cypress.json 文件中设置环境变量时遇到问题

这是我的 cypress.json 文件


  "defaultCommandTimeout": 10000,
  "viewportWidth": 1440,
  "viewportHeight": 900,
  "env": 
    "environment": "Stagging"
  ,
  "fileServerFolder": ".",
  "fixturesFolder": "./src/fixtures",
  "integrationFolder": "./src/integration",
  "pluginsFile": "./src/plugins/index",
  "supportFile": "./src/support/index.ts",
  "video": true,
  "videosFolder": "../../../dist/cypress/apps/web/e2e/videos",
  "screenshotsFolder": "../../../dist/cypress/apps/web/e2e/screenshots",
  "chromeWebSecurity": false

我想动态替换 Environment 值,在我的例子中是从 Staging 到 dev。我正在尝试使用以下 ng 命令

ng e2e --env environment=Dev

它向我抛出了这个错误

当我在 POC 上工作时,这个选项效果很好,正如他们在 cypress 文档 (https://docs.cypress.io/guides/guides/environment-variables.html#Setting) 中提到的那样

有人可以帮我解决这个问题吗?

【问题讨论】:

错误来自'ng'命令而不是柏树。如果你需要设置 cypress 环境,它不会运行 cypress 命令吗? 看起来您的错误与 nx 框架的使用有关,因为这是其基础架构中的已知问题。看看这个讨论:github.com/nrwl/nx/issues/1970 【参考方案1】:

您需要运行 cypress open --env environment=Dev 而不是 ng CLI 命令。如果您想直接运行测试,而不是打开 Test Runner,请使用 cypress run --env environment=Dev

【讨论】:

我也试过这个选项,这里的问题是根据框架 .nodemodules 位于项目根文件夹 'dyno\node_modules' 中,而我的 cypress 框架位于 'dyno\apps\admin -web\ui-e2e' 因此,当我尝试执行 'cypress open --env environment=Dev' 时,会在根文件夹('dyno\cypress.json' ) 并执行 cypress 家伙提供的 cypress 示例集成测试,而不是我的项目测试 您的 cypress.json 文件在哪里?它在 dyno\apps\admin-web\ui-e2e 下吗?如果是这样,请首先转到 cypress json 文件所在的文件夹。然后运行命令''cypress open --env environment=Dev'。如果找不到 cypress 可执行文件,请将其添加到环境变量或使用绝对路径。

以上是关于如何通过命令行在 cypress.json 文件中设置环境变量? (Angular CLI - nrwl nx)的主要内容,如果未能解决你的问题,请参考以下文章

如何通过命令行在pytest中传递参数

归档报告,cypress.json 文件

如何通过命令行在 MSBuild 中指定 CodeAnalysisRuleset

Cypress Report

Cypress 之 环境配置

通过命令行在 Visual Studio 中编译单个独立文件