我正在使用Babel Jest来转换我的代码以进行测试。 我无法获得如何使用相对于项目根目录的路径。
例如,如果在测试文件中我导入了一个模块:/imports/ui/myModule
Jest会抛出错误
Cannot find module
'/Users/me/dev/myProject/Users/me/dev/myProject/imports/ui/myModule' from 'test.jsx'`
但是如果我导入一个具有相对路径的模块,例如:../../ui/myModule
就可以了。
我的.babelrc
:
{
"plugins": [
"transform-decorators-legacy",
"transform-class-properties",
"babel-root-slash-import"
],
"presets": [
"es2015",
"react",
"stage-0"
],
"env": {
"test": {
"plugins": [
"transform-decorators-legacy",
"transform-class-properties",
"babel-root-slash-import"
],
"presets": [
"es2015",
"react",
"stage-0"
]
}
}
}
我的Jest配置是:
"jest": {
"roots": ["<rootDir>/imports/tests/jest"]
},
答案 0 :(得分:0)
例如,您可以使用moduleNameMapper
配置选项。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
关于SO的相关答案:Testing with Jest and Webpack aliases
// package.json
{
"jest": {
"roots": ["<rootDir>/imports/tests/jest"]
},
"moduleNameMapper": [
"^ui/(.*)$": "<rootDir>/imports/ui/$1"
]
}
// test.jsx
import myModule from 'imports/ui/myModule';
官方文档中的另一个例子:https://facebook.github.io/jest/docs/en/webpack.html#configuring-jest-to-find-our-files