Тестовый Jest с babel-plugin-import - PullRequest
       78

Тестовый Jest с babel-plugin-import

0 голосов
/ 20 октября 2019

Jest нарушается из-за babel-plugin-import. Я использую .less стили с Ant Design, который, как мне кажется, вызывает это. Я новичок в библиотеке Jest, поэтому не уверен, как правильно импортировать или обойти эту проблему?

Пример :

Test Suite failed to run
Cannot find module 'antd/lib/skeleton/style' from 'index.js'

Файл .babelrc

 "plugins": [
    ["import", { "libraryName": "antd", "style": true }],

Я пробовал несколько решений, таких как babel-jest, moduleNameMapper и т. д., но есть большая вероятность, что я их не правильно использовал.

1 Ответ

0 голосов
/ 22 октября 2019

Правильный ответ на этот вопрос:

В .babelrc:

Разделите производство, разработку и «тестирование» в .babelrc под «env». По вопросам производства и разработки оставьте babel-plugin-import без изменений. На «тест», убедитесь, что вы удалите его (Jest не может справиться с этим).

В Package.json

Вы можете настроить Jest в этом файле, но самое главное в вашем сценарии NPM для тестирования, вы передаете егоNODE_ENV=test jest так, чтобы он установил правильное env, на которое ссылается babel.

Пользователи Docker / Virtualenv / Kubernetes

Наконец, если вы используете Docker /Kubernetes или какой-либо инструмент, который имеет пакеты, установленные вне вашей локальной машины, убедитесь, что пакеты действительно установлены ..... Я забыл об этом, когда я удалил babel-plugin-import из "test" и начал видеть ошибку дляantd is undefined это заставило меня немного почесать голову. Как только я понял, это произошло потому, что Ant Design был установлен только на моих узлах Kubernetes, а не на моем компьютере, где я выполнял команды. Тупая ошибка, но ее легко совершить, когда вы часами видели коды ошибок.

...