2017-02-08 23 views
1

我在将项目测试集成到项目的特定文件夹时遇到问题。带有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

回答

0

对于那些对解决方法感兴趣的人,我在通过babel-jest的源文件时提出了一个解决方案。只需在您的回购协议的共同基础上创建一个.babelrc,即可扩展真实的回收站。所以在我的情况下:

{ 
    "extends": "./admin-panel/.babelrc" 
} 
0

看起来你有一个类似的问题this person

您是否在.babelrc文件中尝试过以下内容?

"env": { 
    "start": { 
    "presets": [ 
     "react-hmre" 
    ] 
    }, 
    "test": { 
    "presets": ["es2015", "react", "stage-0"], 
    "plugins": ["transform-es2015-modules-commonjs"] 
    } 
} 
+0

是的我试过了,没有改变。因为我使用的是webpack2,所以我禁用了将模块转换为dev/prod中的commonJS,但在测试env中启用它(请参阅我的.babelrc)。 – Zephir77167