【问题标题】:How to use .env variables inside cypress.json file?如何在 cypress.json 文件中使用 .env 变量?
【发布时间】:2022-01-16 20:49:46
【问题描述】:

我想在cypress.json 文件中使用我的.env 变量。作为使用示例:


    {
      "env": {
        "HOST": `${process.env.HOST}`
      }
    }

所以,我想要的是,当我在 Cypress 的任何地方输入 Cypress.env('HOST') 时,我想得到 process.env.HOST 变量

【问题讨论】:

    标签: javascript reactjs json environment-variables cypress


    【解决方案1】:

    避免将 env 文件包装在 env 变量中。 顺便说一句,这应该对您的文件进行处理:

    Cypress.env("env")["HOST"]
    

    【讨论】:

    • 我认为当我们说 Cypress 时,它会在 cypress.json 文件中查找变量,而 .env 表示在 env 数组中。因此,说 Cypress.env("env") 是多重的。相反,我们可以直接说 Cypress.env("HOST") 但遗憾的是,您的建议不适用于这种情况。 Cypress 有自己的作用域,没有帮助就无法获取 .env 变量
    【解决方案2】:

    首先为什么不在你的规范文件中使用 process.env.HOST。 其次,如果您想在不同的主机上进行测试,那么我一直在做的是。

    1. 创建一个文件夹(例如:configFiles)

    2. 在其中创建 json 文件,例如(例如:host1.json、host2.json)

    3. 在您的 json 文件中(在 host1.json 中)

      { “环境”:{ “主机”:“主机 1” } }

    4. 在你的插件文件夹中编辑 index.js

      const fs = require('fs-extra'); const path = require('path');

      函数 getConfigurationByFile(file) { 常量 pathToConfigFile = path.resolve( '柏树/配置文件', ${file}.json );

      return fs.readJson(pathToConfigFile); }

      module.exports = (on, config) => { 常量文件 = config.env.host || '主机1';

      return getConfigurationByFile(file); };

    5. 然后在运行时你可以使用 npm cypress run --env host=host1

    【讨论】:

    • 嗨,Tenish,感谢您的回答。我在故事书中使用柏树。赛普拉斯规范文件没有看到 .env 变量。在研究问题后,我看到 cypress 使用不同的范围并在根目录(node_modules 旁边)创建了一个名为:cypress.json 的新 json 文件,我可以从那里获取数据。但我需要将 .env 文件中的数据放入 cypress.json
    猜你喜欢
    • 2017-06-12
    • 2022-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 2017-05-20
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多