我在将项目测试集成到项目的特定文件夹时遇到问题。带有Jest的意外令牌导入(babel-eslint不能从测试文件,符号链接env中获得)
我的体系结构如下:
|_ shared
|_ job-board
|_ admin-panel
job_board和管理面板各自含有符号链接指向共享,在./client/src/shared
,和每个都包含一个node_modules
文件夹babel- eslint已安装。 共享不包含node_modules文件夹,并依赖于另外2个文件夹的node_modules。通过这个架构,我设法配置了我正在使用的所有工具(Webpack,eslint,eslint-loader,...但是Jest)。
的问题是,当我创建job_board/*
或admin_panel/*
,巴贝尔,开玩笑正确应用此文件,但是当我在shared/*
创建这个文件,不适用通天-开玩笑一个* .test.js文件(作为巴贝尔-笑话不shared
可用),如下面的错误证明:
FAIL ..\shared\utils\tests\StringUtils.test.js
● Test suite failed to run
SyntaxError: Unexpected token import
这里是我的笑话-config.json文件:
{
"moduleFileExtensions": [
"js"
],
"moduleNameMapper": {
"\\.(css|scss)$": "identity-obj-proxy"
},
"modulePaths": [
"<rootDir>/client"
],
"testPathDirs": [
"<rootDir>",
"<rootDir>/../shared"
],
"testRegex": "(\\.|/)test\\.jsx?$"
}
(注日在我不得不添加"<rootDir>/../shared"
到testPathDirs
使* .test.js文件可以找到)
而且我.babelrc文件:
{
"plugins": [
"transform-decorators-legacy",
"transform-object-rest-spread"
],
"presets": [
["es2015", { "modules": false }],
"react",
"stage-0"
],
"env": {
"development": {
"presets": [
"react-hmre"
]
},
"test": {
"plugins": ["transform-es2015-modules-commonjs"]
}
}
}
最后,我跑我的测试有:node --harmony_proxies node_modules/jest-cli/bin/jest.js --config ./jest-config.json
我是否错过了一些东西,或者这真的缺乏一个能够为babel-eslint或其他东西提供“根”的功能?
我也在Jest repo上打开了一个问题,但它已经关闭。所以我就在这里!
粘贴上面的Jest配置。
笑话-CLI:18.1.0
节点:5.6.0
NPM:3.6.0
操作系统:Windows 10
是的我试过了,没有改变。因为我使用的是webpack2,所以我禁用了将模块转换为dev/prod中的commonJS,但在测试env中启用它(请参阅我的.babelrc)。 – Zephir77167