【问题标题】:Cypress can't get variables from process.env file赛普拉斯无法从 process.env 文件中获取变量
【发布时间】:2021-07-31 14:54:22
【问题描述】:

我在 cypress 测试中从 process.env 文件中获取变量值时遇到问题。我试着按照这个来做:https://docs.cypress.io/guides/guides/environment-variables#Option-5-Plugins 但是当我尝试使用 prcess env 文件中的变量时出现未定义的错误

我的 index.js 文件:

const { preprocessTypescript } = require('@nrwl/cypress/plugins/preprocessor');
require('dotenv').config();
module.exports = (on, config) => {
  on('file:preprocessor', preprocessTypescript(config));
  
  [
    'DB_USER',
    'DB_PASS',
    'DB_SNOWFLAKE_ACCOUNT',
    'DB_SNOWFLAKE_DATABASE',
    'DB_SNOWFLAKE_ROLE',
    'DB_SNOWFLAKE_SCHEMA',
    'DB_SNOWFLAKE_WAREHOUSE'
  ].forEach(v => {
    config.env[v] = process.env[v];
  });

  return config;
};

process.env 文件(在根文件夹中)

DB_SNOWFLAKE_ACCOUNT=www.xyz.com
DB_USER=xyzxyz
DB_PASS=xyzxyzxyz
DB_SNOWFLAKE_DATABASE=XYZX

和 test.spec.ts

  const snowflakeUrl: string = Cypress.env('DB_SNOWFLAKE_ACCOUNT');
  const userName: string = Cypress.env('DB_USER');
  const password: string = Cypress.env('DB_PASS');
  const database: string = Cypress.env('DB_SNOWFLAKE_DATABASE');

【问题讨论】:

  • 你的文件是叫process.env还是.env,因为我觉得应该是后者。

标签: typescript environment-variables cypress


【解决方案1】:

文件名应该是.env,这就是dotenv 的作用。

然后它将环境变量加载到process.env 对象中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    相关资源
    最近更新 更多