使用babel-plugin-import测试Jest

时间:2019-10-20 04:32:12

标签: jestjs babel antd babel-jest

开玩笑由于babel-plugin-import而中断。我在Ant设计中使用.less样式,我认为是造成这种情况的原因。我是Jest库的新手,所以不确定如何导入或解决该问题?

示例

Test Suite failed to run
Cannot find module 'antd/lib/skeleton/style' from 'index.js'

.babelrc文件

 "plugins": [
    ["import", { "libraryName": "antd", "style": true }],

我尝试了许多解决方案,例如babel-jest,moduleNameMapper等,但是很可能我没有正确使用它们。

1 个答案:

答案 0 :(得分:0)

对此的正确答案是:

在.babelrc中:

.babelrc中“ env”下的生产,开发和“测试”分开。在生产和开发中,保持babel-plugin-import不变。在“测试”中,确保将其删除(开玩笑无法处理)。

在Package.json中

欢迎您在此文件中配置Jest,但最重要的是在NPM脚本上进行测试,将其传递给NODE_ENV=test jest,以便它设置babel将要引用的正确环境。

Docker / Virtualenv / Kubernetes用户

最后,如果您使用的是Docker / Kubernetes或某种在本地计算机之外的任何位置安装了软件包的工具,请确保已实际安装了软件包.....删除babel-plugin时我忘记了-从“测试”导入,开始发现antd is undefined的错误,这让我有些scratch异。我一意识到这是因为Ant Design仅安装在我的Kubernetes节点上,而实际上没有安装在运行命令的计算机上。愚蠢的错误,但是当您看到数小时的错误代码时,很容易犯错。