Узел в Docker: проверка npm и выход - PullRequest
3 голосов
/ 30 апреля 2019

Я хочу протестировать образ докера узла с помощью "npm run test" в качестве команды перезаписи при запуске моего контейнера.

Мой Dockerfile:

FROM node:alpine
WORKDIR /app
COPY ./package.json ./
RUN npm install
COPY ./ ./
CMD ["npm", "run", "start"]

Команда «npm run test» должна быть запущена в моем контейнере и выходить на терминал (локально и Travis CI), но тестовый запуск застрял на «Run all test suite». ожидание ввода.

Моя команда запуска Docker:

docker run myimage npm run test -- --coverage

Я также пытался с:

docker run myimage npm run test -- --forceExit

Но ни один из них не завершается после выполнения теста (ни локально, ни в Travis CI).

Мой файл App.test.js является стандартным тестом:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

it('renders without crashing', () => {
  const div = document.createElement('div');
  ReactDOM.render(<App />, div);
  ReactDOM.unmountComponentAtNode(div);
});

Что я должен сделать, чтобы автоматически выйти из теста после его завершения?

1 Ответ

4 голосов
/ 30 апреля 2019

Обнаружено, что команда запуска docker должна содержать - e CI = true для немедленного выхода:

docker run -e CI=true myimage npm run test

Из документации React о "CI = true":

Команда test заставит Test работать в режиме CI, и тесты запускать только один раз вместо запуска наблюдателя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...