我在將項目測試集成到項目的特定文件夾時遇到問題。帶有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