首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Jest的意外令牌导入(babel-eslint无法从测试的文件中获得,符号链接env)

带有Jest的意外令牌导入(babel-eslint无法从测试的文件中获得,符号链接env)
EN

Stack Overflow用户
提问于 2017-02-08 16:01:27
回答 2查看 1.5K关注 0票数 1

我在项目的一个特定文件夹中集成单元测试时遇到了困难。

我的架构如下:

代码语言:javascript
复制
|_ shared
|_ job-board
|_ admin-panel

job_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中不可用),如下错误所证明的:

代码语言:javascript
复制
FAIL  ..\shared\utils\tests\StringUtils.test.js
● Test suite failed to run
SyntaxError: Unexpected token import

这是我的jest-config.json文件:

代码语言:javascript
复制
{
  "moduleFileExtensions": [
    "js"
  ],
  "moduleNameMapper": {
    "\\.(css|scss)$": "identity-obj-proxy"
  },
  "modulePaths": [
    "<rootDir>/client"
  ],
  "testPathDirs": [
    "<rootDir>",
    "<rootDir>/../shared"
  ],
  "testRegex": "(\\.|/)test\\.jsx?$"
}

(请注意,我必须将"<rootDir>/../shared"添加到testPathDirs中,以便能够找到*.test.js文件)

还有我的.babelrc文件:

代码语言:javascript
复制
{
  "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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-09 18:06:08

对于那些对解决方案感兴趣的人,我在浏览babel-jest的源文件时想出了一个解决方案。只需在您的repos的公共根上创建一个.babelrc,就可以扩展真正的一个。所以就我而言:

代码语言:javascript
复制
{
  "extends": "./admin-panel/.babelrc"
}
票数 0
EN

Stack Overflow用户

发布于 2017-02-09 16:37:28

看起来,您的问题与this person类似。

您在您的.babelrc文件中尝试过以下内容吗?

代码语言:javascript
复制
"env": {
  "start": {
    "presets": [
      "react-hmre"
    ]
  },
  "test": {
    "presets": ["es2015", "react", "stage-0"],
    "plugins": ["transform-es2015-modules-commonjs"]
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42117924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档