我在项目的特定文件夹中集成单元测试时遇到问题。
我的架构如下:
|_ shared
|_ job-board
|_ admin-panel
job_board和admin-panel每个都包含一个指向shared、 at的符号链接,并且每个都包含一个安装了 babel-eslint 的文件夹。shared不包含 node_modules 文件夹,并且依赖于另外 2 个文件夹的 node_modules。./client/src/shared
node_modules
使用这种架构,我已经成功地配置了我正在使用的所有工具(Webpack、eslint、eslint-loader,......但 Jest)。
job_board/*
问题是,当我在or中创建 *.test.js 文件时admin_panel/*
,babel-jest 已正确应用于此文件,但是当我在 中创建此文件时shared/*
,babel-jest 未应用(因为 babel-jest 不可用in shared
),如以下错误证明:
FAIL ..\shared\utils\tests\StringUtils.test.js
● Test suite failed to run
SyntaxError: Unexpected token import
这是我的jest-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 存储库上打开了一个问题,但它已关闭。所以我在这里!
上面粘贴的 Jest 配置。
开玩笑的cli:18.1.0
节点:5.6.0
npm:3.6.0
操作系统:Windows 10