Jest 无法解析 React 应用程序中的项目路径
Jest can't resolve project paths in react app
所以,我正在学习在我正在从事的项目中使用 jest 和 react-testing-library。这是我正在测试的组件的代码:
//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 文件位于项目的根目录中。
任何帮助都会很棒。
好的,我明白了。
我将 jest.conf 文件替换为 jest.config.js
文件:
//jest.config.js
module.exports = {
moduleDirectories: ["node_modules", "src"]
};
然后我只是 运行 开个玩笑就成功了。
所以,我正在学习在我正在从事的项目中使用 jest 和 react-testing-library。这是我正在测试的组件的代码:
//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 文件位于项目的根目录中。
任何帮助都会很棒。
好的,我明白了。
我将 jest.conf 文件替换为 jest.config.js
文件:
//jest.config.js
module.exports = {
moduleDirectories: ["node_modules", "src"]
};
然后我只是 运行 开个玩笑就成功了。