让Jest在testing时忽略无用的导入

testing组件

我正在尝试对Jest的反应组件进行一些非常简单的testing。 我遇到了问题,因为这个行在我的组件文件的顶部

import {} from './style.less'; 

这里的input不需要testing,理想情况下可以忽略testing。

[npmtesting]的结果

当通过npm test运行npm test我得到响应

FAIL testing /app_test.js●运行时错误SyntaxError:意外的标记{在文件'client / components / app / style.less'中。

确保预处理器设置正确,并确保“preprocessorIgnorePatterns”configuration正确: http : //facebook.github.io/jest/docs/api.html#preprocessorignorepatterns-array-string如果您当前正在设置Jest或修改你的预处理器,试试jest --no-cache 。 预处理器:node_modules / jest-css-modules。 Jest试图执行以下预处理代码://一些无代码

但是,如果我注释掉更less的导入行,我的testing运行正常。

我怎样才能让开玩笑跳过这一行代码或忽略此导入?

除了手动嘲讽testing顶部的.less文件之外,唯一可以让我忽略更less文件的方法是,

 jest.mock("../../src/styles.less", () => jest.fn()); 

是将以下内容添加到package.json中:

 "jest": { "moduleNameMapper": { ".*\\.less$": "<rootDir>/pathToDummyFile/dummy.js" } }, 

每当你的代码尝试导入一个较less的文件,它将redirect导入,以获取一个空的虚拟文件,这将避免您遇到的意外的令牌错误。

如果您仍然遇到此问题,请尝试将以下configuration添加到您的jest.config.json文件中:

"transform": { "^.+\\.(css|less)$": "./styleMock.js" }

在你的styleMock.js你正在创build一个转换你的.less文件的变换器:

module.exports = { process() { return '' } }

我已经用ignore-styles( https://github.com/bkonkle/ignore-styles )解决了同样的问题。 我已经使用这个库摩卡,但我认为这应该可以与笑话。