我正在尝试在我的 Next.js 项目中配置 Jest。在我的测试文件中,我已经导入了我的组件,如 import { HamburgerMenu } from './HamburgerMenu.jsx'
。在该组件中,还有许多其他导入。其中一个是
import {
checkValidEmail, getNumbers, getFormttedPhoneNo, validateSubscription,
} from 'helpers/utils';
当我运行测试时,它给了我以下错误(在上面的导入语句中):
Cannot find module 'helpers/utils' from 'components/common/Smart/HamburgerMenu/HamburgerMenu.jsx'
这里是详细信息。
jest.config.js
(在根目录)
module.exports = {
collectCoverageFrom: [
'**/*.{js,jsx,ts,tsx}',
'!**/*.d.ts',
'!**/node_modules/**',
],
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
testPathIgnorePatterns: ['/node_modules/', '/.next/'],
transform: {
'^.+\\.(js|jsx|ts|tsx)$': '<rootDir>/node_modules/babel-jest'
},
transformIgnorePatterns: [
'/node_modules/',
'^.+\\.module\\.(css|sass|scss)$',
],
moduleNameMapper: {
'^.+\\.module\\.(css|sass|scss)$': 'identity-obj-proxy',
},
}
我在 ESLint 文件中添加了 jest: true
。
babel.config.js
文件(在根目录下):
module.exports = {
presets: ["next/babel"],
plugins: [["babel-plugin-styled-components", { ssr: true }]]
};
答案 0 :(得分:0)
您可以尝试添加
...
moduleDirectories: ['node_modules', '.'],
...
到您的jest.config.js