Jest не может разрешить пути проекта в приложении реагирования - PullRequest
0 голосов
/ 30 апреля 2020

Итак, я учусь использовать шутку с реагирующей тестирующей библиотекой в ​​проекте, над которым я работаю. Вот код компонента, который я тестирую:

//DefaultLayout.js

import React, { Component, Suspense } from 'react';
import Header from 'components/Header/Header.js'

...

И затем тестовый файл:

//DefaultLayout.test.js

import React from 'react'
import { render, cleanup } from "@testing-library/react"
import '@testing-library/jest-dom'
import DefaultLayout from "./DefaultLayout.js"

...

Теперь, когда я запускаю npm test, я получаю это:

Test suite failed to run

    Cannot find module 'components/Header/Header.js' from 'DefaultLayout.js'

      2 | import { Redirect, Route, Switch } from 'react-router-dom';
      3 | import * as router from 'react-router-dom';
    > 4 | import Header from 'components/Header/Header.js'
        | ^

Теперь, чтобы этот импорт работал, у меня есть файл jsconfig.json, подобный следующему:

{
  "compilerOptions": {
    "baseUrl": "src",
    "paths": {
      "*": ["src/*"]
    }
  }
}

Все папки, включая components, находятся в каталоге src. Я знаю, что jest не импортирует эту конфигурацию, и что мне нужно снова настроить ее для jest. Я просто не понимаю, как это сделать.

Я создал файл jest.conf, но он не работает:

{
  "transform": {
    "^.+\\.(js|jsx)$": "<rootDir>/src"
  },
}

Это моя последняя попытка. Файл jest.conf находится в root каталоге проекта.

Любая помощь будет отличной.

1 Ответ

0 голосов
/ 30 апреля 2020

Хорошо, я понял это.

Я заменил файл jest.conf на файл jest.config.js:

//jest.config.js
module.exports = {
  moduleDirectories: ["node_modules", "src"]
};

, а затем просто запустил jest, и он работает.

...