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

IT技术 reactjs jestjs enzyme css-modules
2021-04-28 00:15:29

我试图来测试我的部件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个回答

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

我只注意到的是,当我指定一个在我的配置.jestrc文件,我的测试中,由于刹车.css,但是当我做它从package.json一切正常。

编辑

#package.json


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

我查看了 Jest 文档,为了清楚起见,您安装了identity-obj-proxy吗?

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

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

"\\.(css|less)$": "identity-obj-proxy"

可以尝试切换你的匹配。

最后,你可以尝试一个像这样的笑话插件 jest-css-modules

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