我在项目的一个特定文件夹中集成单元测试时遇到了困难。
我的架构如下:
|_ shared
|_ job-board
|_ admin-paneljob_board和管理面板分别包含指向shared ( at ./client/src/shared )的符号链接,以及一个安装了babel-eslint的node_modules文件夹。共享不包含node_modules文件夹,并依赖于其他两个文件夹的node_modules。
使用这种架构,我已经成功地配置了我所使用的所有工具(Webpack,eslint,eslint-加载器,.但是Jest)。
问题是,当我在job_board/*或admin_panel/*中创建一个job_board/*文件或admin_panel/*时,babel-jest被正确地应用于该文件,但是当我在shared/*中创建这个文件时,babel-jest没有被应用(因为babel-jest在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配置。
开玩笑: 18.1.0
节点: 5.6.0
国家预防机制: 3.6.0
操作系统: Windows 10
发布于 2017-02-09 18:06:08
对于那些对解决方案感兴趣的人,我在浏览babel-jest的源文件时想出了一个解决方案。只需在您的repos的公共根上创建一个.babelrc,就可以扩展真正的一个。所以就我而言:
{
"extends": "./admin-panel/.babelrc"
}发布于 2017-02-09 16:37:28
看起来,您的问题与this person类似。
您在您的.babelrc文件中尝试过以下内容吗?
"env": {
"start": {
"presets": [
"react-hmre"
]
},
"test": {
"presets": ["es2015", "react", "stage-0"],
"plugins": ["transform-es2015-modules-commonjs"]
}
}https://stackoverflow.com/questions/42117924
复制相似问题