Как я могу указать файл .env для использования на моем сервере разработки при запуске тестов кипариса?

Как я могу указать, какой файл .env использовать для моего сервера разработки при запуске тестов кипариса? Это переменные окружения системного уровня, а не переменные среды тестирования кипариса.

У меня есть файл env, который я хочу использовать для своего сервера при запуске тестов кипариса: .env.local.cypress

В моем файле package.json у меня есть:

"dev-server": "nodemon --delay 5ms -e ts,tsx --watch ./src -x ts-node --transpile-only ./src/server",
"cy:run": "cypress run",
"test:e2e:local": "dotenv -e .env.local.cypress -- start-server-and-test dev-server http://localhost:3000 cy:run"

Когда я запускаю test:e2e:local, сервер запускается с правильными переменными env, но тесты — нет. Есть идеи, почему?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете выбрать любые глобальные переменные env в cypress.config.js несколькими способами.

Через dotenv CLI (согласно вашему примеру)

const { defineConfig } = require("cypress");

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      config.env = {
        ...process.env,                 // add all process env var here
        ...config.env                   // plus any command line overrides
      }
      return config     
    },
  },
})

Это дает вам все, что в настоящее время определено на системном уровне, включая те, которые добавляются через интерфейс командной строки dotenv.

Вы можете просто добавить определенные вары:

config.env = {
  abc: process.env.abc,
  ...config.env                  
}

Через локальную установку dotenv

Или вы можете использовать пакет dotenv локально, чтобы загрузить только определенный файл env внутри cypress.config.js

npm install dotenv --save
const { defineConfig } = require("cypress");

const local = require('dotenv').config({ path: '.env.local.cypress' })

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      config.env = {
        ...local.parsed,
        ...config.env               
      }
      return config     
    },
  },
})

Другие вопросы по теме