当我尝试运行npm jest时,测试套件无法运行并给出以下错误消息:
Cannot find module 'app/utils' from 'MoreModal.js'
1 | import React from 'react';
2 | import { Link } from 'react-router';
> 3 | import { fn, api } from 'app/utils';
我的笑话配置是
"jest": {
"setupTestFrameworkScriptFile": "<rootDir>/js/__tests__/setup/setupEnzyme.js",
"testPathIgnorePatterns": ["<rootDir>/js/__tests__/setup/"],
},
我尝试摆弄moduleDirectories,但是什么也没做。
我的酶设置是
Enzyme.configure({ adapter: new Adapter() });
测试:
describe('<MoreModal />', () => {
describe('render()', () => {
test('renders the component', () => {
const wrapper = shallow(<MoreModal />);
const component = wrapper.dive();
expect(toJson(component)).toMatchSnapShot();
})
})
})
如何开玩笑以正确找到组件中的模块?
答案 0 :(得分:1)
您的捆绑程序可能已设置了一些分辨率,以使app/utils
像这样工作。
如果您使用的是Webpack,https://www.npmjs.com/package/jest-webpack-resolver将帮助您连接Jest以使用相同的分辨率规则。
答案 1 :(得分:1)
您可以尝试以下操作:
"jest":{
"modulePaths": [
"<rootDir>/app"
],
"moduleDirectories": [
"app"
]
}
设置NODE_PATH env变量modulePaths的替代API 是指向要搜索的其他位置的绝对路径的数组 解决模块。使用字符串标记包括路径 到项目的根目录。例如:[“ / app/"]。
捆绑程序也有可能相对于@AKX提到的其他目录来解析模块。项目的根文件夹中或内部是否存在“ app / utils”?如果是这种情况,您的笑话配置应该与捆绑程序的配置相匹配。