Загрузка тестового файла .env в jest - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь запустить тесты моментальных снимков в реактивном проекте с использованием jest с использованием локального файла .env, но не могу понять, как заставить jest распознать его.

покапробовал:

  • добавление dotenv.config({path: 'path/to/.env'}); в jest.setup.js
  • запуск jest с -env = 'path / to / .env' в кли добавлении
  • testEnvironment: 'путь / к / .env' в jest.config.js

эта функция поддерживается?Любая помощь будет оценена

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

То, что я сейчас делаю, выглядит примерно так:

beforeEach(()=> {
    process.env = Object.assign(process.env, { REACT_APP_ENV_VAR: 'some env variable' });
});

Таким образом, я могу выбрать, какую переменную использовать в каждом тесте, не забудьте очистить env на afterEach

0 голосов
/ 02 декабря 2018

.env config для вашего приложения, а не для ваших тестов.

Например, если вы хотите установить различные значения для переменной в вашем приложении на основе env, это будет что-то вроде этого

development.env

GREET="Hello Dev!"

test.env

GREET="Hello Master!"

production.env

GREET="Hello User!"

Теперь ваш код в приложении будет

const sendGreeting = () => {
  return process.env.GREET || 'default greet';
};

Вы должны запустить свои тесты с помощью скрипта, который устанавливает NODE_ENV в test в вашем package.json файле

"scripts": {
  ...
  "test": "NODE_ENV=test jest"
  ...
}

Поэтому, когда вы тестируете этот метод в шутку, у вас будет правильное значение для теста env.

describe('Test Env', () => {
  it('should return test greeting in test env', () => {
    expect(sendGreetings()).toEqual("Hello Master!");
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...