Babel-jest не переносит JSX в node_modules

#reactjs #jestjs #babeljs #react-testing-library

#reactjs #jestjs #babeljs #реагировать-тестирование-библиотека

Вопрос:

Babel-jest не переносит JSX / ES6 в node_modules папку при запуске тестов Реагирующие компоненты, которые не используют другие компоненты из node_modules , проходят все тесты правильно.

Попробуйте добавить transformIgnorePatterns и переименовать в babel.config.js из-за https://github.com/facebook/jest/issues/6229

package.json

 "devDependencies": {
    "@babel/core": "7.1.2",
    "@babel/node": "7.0.0",
    "@babel/plugin-syntax-dynamic-import": "7.2.0",
    "@babel/plugin-transform-modules-commonjs": "^7.4.0",
    "@babel/preset-env": "7.2.0",
    "@babel/preset-react": "7.0.0",
    "babel-eslint": "10.0.1",
    "babel-jest": "24.5.0",
    "babel-loader": "8.0.4",
    "jest": "24.5.0",
    "jest-dom": "3.1.3",
    .......
  },
  

babel.config.js

 module.exports = {
  presets: [
    '@babel/preset-env',
    '@babel/preset-react',
  ],
  plugins: [
    '@babel/plugin-syntax-dynamic-import',
    '@babel/plugin-proposal-class-properties',
    'react-hot-loader/babel',
  ],
  env: {
    test: {
      plugins: ['@babel/plugin-transform-modules-commonjs', '@babel/plugin-proposal-class-properties'],
    },
  },
};
  

jest.config.js

 module.exports = {
  transform: {
    '^. \.jsx?$': 'babel-jest',
  },
  moduleNameMapper: {
    '\.(css|less|scss|sss)$': 'identity-obj-proxy',
  },
  testEnvironment: 'jsdom',
};
  

Комментарии:

1. Такого рода проблемы обычно довольно сложны из-за зависимостей, поэтому я предлагаю поделиться всем репозиторием, где люди могут получить копию вашего рабочего каталога, чтобы протестировать вещи, чтобы выяснить проблему.

Ответ №1:

На самом деле, ссылка ниже помогла мне. Достаточно было добавить transformIgnorePatterns мои компоненты из node_modules , поэтому babel-jest игнорируйте все файлы вместо моих компонентов
изображение из документов jestjs
https://jestjs.io/docs/en/tutorial-react-native#transformignorepatterns-customization