gpt4 book ai didi

javascript - CSS 模块 @import 未能通过 Jest 测试套件

转载 作者:行者123 更新时间:2023-11-29 23:28:11 27 4
gpt4 key购买 nike

我正在使用 Jest 和 Enzyme 来测试我的应用程序。我收到错误:

 FAIL  app/containers/Navbar/NavbarContainer.test.js
● Test suite failed to run

app/components/Navbar/styles.css: Unexpected token (1:0)
> 1 | @import "../../styles/base/_variables";
| ^
2 |
3 | .navbar{
4 | width: $navbar-width;

这是我在 package.json 中的 Jest 配置:

"jest": {
"verbose": true,
"globals": {
"env": {
"isProd": false,
"isDev": true,
"command": "start"
}
},
"moduleNameMapper": {
"\\.(css)$": "identity-obj-proxy"
},
"moduleFileExtensions": [
"js",
"jsx",
"json",
"css"
],
"modulePaths": [
"/app"
],
"moduleDirectories": [
"node_modules"
],
"verbose": true,
"setupFiles": [
"./setupJest.js"
],
"setupTestFrameworkScriptFile": "<rootDir>/setupTests.js"
}

我在设置应用程序时遵循了指南,我发现 identity-obj-proxy 将有助于模拟 css-modules 功能,但这在我的情况下不起作用。请让我知道我在这里缺少什么。

附言这不是 ES6 模块导入。诉讼失败,因为css中有一个@import

最佳答案

更新从 2​​018 年 2 月开始使用 create-react-app 的人。您不能覆盖 package.json 中的 moduleNameMapper,但在 jest.config.js 中它可以工作,不幸的是我还没有找到任何关于它为什么起作用的文档。所以我的 jest.config.js 看起来像这样:

module.exports = {
...,
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(scss|sass|css)$": "identity-obj-proxy"
}
}

它可以很好地跳过 scss 文件和@import。

我添加到 devDependencies identity-obj-proxy

支持我的回答,我遵循了jest webpack

关于javascript - CSS 模块 @import 未能通过 Jest 测试套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48286678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com