javascript - 如何指定 Cypress 组件测试中使用哪个 .env 文件

标签 javascript testing environment-variables cypress cypress-component-test-runner

我一直在尝试弄清楚如何在运行 Cypress 组件测试时指定使用哪个 .env 文件一段时间,但似乎无法弄清楚或在网上找到任何有关它的信息。

我注意到,当您在 Cypress 中安装组件并运行一些组件测试时,该组件默认会从 .env 文件中获取 process.env 变量。但是,我希望 Cypress 从我的 .env.test 文件中获取 process.env 变量。有谁知道如何指定您的组件在运行组件测试时应从哪个 .env 文件获取 process.env 变量?

我目前只是从我的 package.json 文件 "test-e2e": "cypress open" 运行以下命令。这将打开 Cypress 测试运行程序,我可以在其中选择“组件测试”,然后选择一个规范文件来运行测试。有问题的组件使用了一些 process.env 变量,我可以看到这些变量是从 .env 文件中获取的,这似乎是默认的。我找不到任何可以添加到 npm 命令中的标志来告诉 Cypress 从 .env.test 文件中获取它们。

任何帮助将不胜感激!

最佳答案

你想要做类似这个答案 How can I get Vite env variables 的事情.

请注意,配置的 .env 部分位于组件或 e2e 部分之外(两者共有)。

const { defineConfig } = require("cypress");
const dotenv = require('dotenv')
const env = dotenv.config('./.env.test').parsed

module.exports = defineConfig({
  'component': {
    // component config here
  },
  env: {
    login_url: '/login',
    ...env,                        // merge here with spread operator
  },
});

关于javascript - 如何指定 Cypress 组件测试中使用哪个 .env 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75450760/

相关文章:

php - 有没有办法在php中的不同时间加载页面的不同部分

javascript - 使用jquery设置输入值

unit-testing - 如何在 selenium 测试 phpunit 打开命令之前等待?

linux - 如何使用源从外部文件导入环境变量

javascript - Bootstrap datetimepicker - 基于输入值的日期

unit-testing - 单元测试真的有用吗?

javascript - 如何在 node.js 服务器中使用 Jest 解决 UnhandledPromiseRejectionWarning

environment-variables - 在 CMD 中使用环境变量

vue.js - Vue cli - 类型错误 : Cannot read property 'env' of undefined

javascript - React Link 标签阻止 flex-boxes 工作