使用 babel-plugin-import 测试 Jest
Test Jest with babel-plugin-import
Jest 由于 babel-plugin-import 而中断。我在 Ant Design 中使用 .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 等,但很有可能我没有正确使用它们。
正确答案是:
在 .babelrc 中:
在 "env" 下面的 .babelrc 中将生产、开发和 "test" 分开。在生产和开发中,保持 babel-plugin-import 不变。在 "test" 上,确保将其删除(Jest 无法处理)。
在Package.json
欢迎您在此文件中配置 Jest,但最重要的是在您的 NPM 脚本上进行测试,您将其传递给 NODE_ENV=test jest
以便它设置 babel 将要访问的正确环境参考。
Docker/Virtualenv/Kubernetes 用户
最后,如果您使用的是 Docker/Kubernetes 或某种在本地计算机之外的任何位置安装了软件包的工具,请确保这些软件包确实已安装.....我忘记了,当我从 "test" 中删除了 babel-plugin-import 并开始看到 antd is undefined
的错误,这让我挠了挠头。我一意识到这是因为 Ant Design 仅安装在我的 Kubernetes 节点上,而不是实际上我的计算机上 运行 命令。愚蠢的错误,但当您看到错误代码数小时后很容易犯。
Jest 由于 babel-plugin-import 而中断。我在 Ant Design 中使用 .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 等,但很有可能我没有正确使用它们。
正确答案是:
在 .babelrc 中:
在 "env" 下面的 .babelrc 中将生产、开发和 "test" 分开。在生产和开发中,保持 babel-plugin-import 不变。在 "test" 上,确保将其删除(Jest 无法处理)。
在Package.json
欢迎您在此文件中配置 Jest,但最重要的是在您的 NPM 脚本上进行测试,您将其传递给 NODE_ENV=test jest
以便它设置 babel 将要访问的正确环境参考。
Docker/Virtualenv/Kubernetes 用户
最后,如果您使用的是 Docker/Kubernetes 或某种在本地计算机之外的任何位置安装了软件包的工具,请确保这些软件包确实已安装.....我忘记了,当我从 "test" 中删除了 babel-plugin-import 并开始看到 antd is undefined
的错误,这让我挠了挠头。我一意识到这是因为 Ant Design 仅安装在我的 Kubernetes 节点上,而不是实际上我的计算机上 运行 命令。愚蠢的错误,但当您看到错误代码数小时后很容易犯。