2017-02-08 34 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