使用jest和css-modules测试反应组件时出错

时间:2017-07-06 07:47:12

标签: reactjs jestjs enzyme css-modules

我正在尝试使用jestreactredux来测试我的组件,但我一直收到以下错误:

 ● Test suite failed to run
        stream-react-redux/src/containers/App/App.css:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){.app {

    SyntaxError: Unexpected token .

我已按照有关如何添加identity-obj-proxy和配置.jestrc文件的说明进行操作,但我仍然遇到同样的错误。当我开始使用 css-modules 并在我的组件中导入它们时出现了问题

这是我的.jestrc

{
  "moduleFileExtensions": [ "js", "jsx"],
  "moduleNameMapper": {
    "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
    "^.+\\.(css)$": "identity-obj-proxy"
  },
  "transform": {
    "^.+\\.(js|jsx)$": "babel-jest"
  },
  "verbose": true
}

我还在["es2015", { "modules": false } ]文件中添加了.babelrc

2 个答案:

答案 0 :(得分:2)

我查看了Jest文档,为了清楚起见,您安装了jquery('pre').eq(1).remove(); 吗?

identity-obj-proxy

另外,我看到Jest docs中推荐的文件正则表达式是

npm install --save-dev identity-obj-proxy

可能会尝试切换你的匹配。

最后,您可以尝试像"\\.(css|less)$": "identity-obj-proxy"

这样的jest插件

https://github.com/justinsisley/Jest-CSS-Modules

答案 1 :(得分:1)

所以在尝试了一切后,我仍然得到同样的错误。

我刚注意到的是,当我在.jestrc文件中指定我的配置时,我的测试因.css而生效,但是当我从package.json执行时,一切正常。< / p>

修改

#package.json


  "jest": {
    "moduleNameMapper": {
      "\\.css$": "identity-obj-proxy"
    }, 
    "transform": {
      "\\.js$": "babel-jest"
    }