Node.js: запустить и убить тестовый сервер в модульном тесте - PullRequest
0 голосов
/ 17 октября 2019

Чтобы протестировать некоторые вызовы API, которые мы делаем в приложении, мы настроили небольшой HTTP-сервер, который имитирует то, что делает настоящий рабочий сервер. Он имеет те же конечные точки, но работает на локальном хосте и дает ложные ответы. Он написан на Node.js с использованием Express.

Пока (ручное) тестирование на этом сервере хорошо, все работает нормально. Недавно мы пытались автоматизировать этот процесс для модульного тестирования. Мы хотим, чтобы для каждого теста в наборе тестов:

  1. Запустить сервер тестов HTTP (например, в подпрограмме beforeEach);
  2. Запустите модульный тест, который вызывает сервер и проверяет ответы;
  3. Остановите тестовый сервер HTTP (например, в подпрограмме afterEach).

Наш Первый подход заключался в использовании child_process для запуска / уничтожения сервера, но, похоже, он не работает по причинам, которые мы не можем понять (особенно на нескольких ОС. Сейчас нас интересует в основном Windows / Linux).

Как бы вы подошли к этой проблеме? Является ли подход child_process хорошим? Есть ли альтернативы?

Мы работаем над этим с некоторого времени и, похоже, ничего не работает на всех ОС ...

Примечание: мы тестируем с использованием Jest.

...