jest-haste-map: @providesModule именование коллизий: - PullRequest
0 голосов
/ 27 апреля 2018

У нас есть приложение Node, и мы пытаемся перенести наши тестовые случаи в Jest. В локальной среде разработки все работает нормально. Мы можем запускать тесты. При настройке CI в Jenkins мы получаем много @ Предоставляет предупреждения о коллизиях именования модулей, и в конечном итоге сборка завершается сбоем. Мы не являемся встроенным приложением.

Что мы подозреваем из нашего анализа, так это то, что Jest пытается создать свой собственный граф зависимостей в CI, а не из блокировки пряжи, и поэтому эти странные предупреждения вызывают конфликты модулей.

Как мы можем избежать этого при помощи Jest. В локальном режиме такие предупреждения не отображаются.

1 Ответ

0 голосов
/ 13 августа 2018

Я столкнулся с подобной проблемой при попытке интегрировать Jest-тестирование в мою конфигурацию CI. Я нашел решение использовать npm install вместо yarn install. Я думаю, что это могло быть проблемой с кэшированием пряжи.

См. Эту ветку и, в частности, этот ответ: https://github.com/facebook/react-native/issues/13364#issuecomment-312500564

Редактировать

Другой метод, который я нашел, чтобы обойти это, состоял в том, чтобы удалить кэш пряжи перед запуском установки пряжи. Вот пример записи конфигурации GitLab CI для развертывания Heroku.

image: node:8.11.3

cache:
  paths:
    - node_modules/

before_script:
  - apt-get update -qq && apt-get install

stages:
  - test

test:
  stage: test
  before_script:
    - rm -rf .yarn
    - yarn install
  script:
    - yarn test

Кроме того, использование команд npm вместо пряжи, похоже, также решает проблему. В этом случае вам не нужно удалять кеш пряжи.

...