testing - Jest 测试中的 Webpack 别名和配置
问题描述
我正在更新一个较旧的Webpack2
项目Webpack4
并将测试切换到,Jest
但是与几个 webpack 相关的位有一个看似简单的问题。
具体来说,麻烦位的项目结构如下所示:
src
- constants
- index.js
- config
- base.js
- test.js
- dev.js
- dist.js
在测试期间,被测试的类使用import config from 'config'
所以第一个问题是允许他们找到正确的配置文件。使用 Webpack2,这是由 webpack 本身替代的,但显然不是在 Jest 测试期间。
我可以通过将特定的测试配置硬编码到moduleNameMapper
开玩笑的配置中来解决这个问题,package.json
如下所示:
"jest": {
"moduleNameMapper": {
"^config$": "<rootDir>/src/config/test.js"
}
}
这似乎有效。
我的问题的第二部分是允许 Jestsrc/constants/index.js
使用类似import { SOME_CONST } from 'constants'
.
当我尝试使用时,moduleNameMapper
我会从任何使用常量的东西中返回 undefined,我相信这是因为moduleNameMapper
它主要用于模拟依赖项而不是提供它们。考虑到这一点,我认为我需要使用modulePaths
或moduleDirectories
允许constants
定位。
我已经尝试了以下配置(不是同时),但没有任何运气:
"modulePaths": [
"<rootDir>/src/constants",
"src/constants"
],
"moduleDirectories": [
"node_modules",
"src",
"src/constants",
"/src/constants"
"/src/constants/",
"./src/constants"
],
正确的配置应该是什么Jest
来定位我的常量?
如果有任何帮助,我正在尝试模仿此Webpack2
配置Jest
resolve: {
alias: {
constants: `${this.srcPathAbsolute}/constants/`
}
}
解决方案
推荐阅读
- node.js - Cloud Run - 将压缩文件附加到响应中
- mongodb - 无法安装或删除 mongodb
- java - 为什么静态类不应该存储状态?(爪哇)
- python - setContextProperty() 不会在 qml 文件中创建类实例
- python - 如何创建混淆矩阵来评估模型?
- javascript - 我怎样才能开始 NodeJS 帖子?
- reactjs - Json-server 使用 React js 和 Redux 响应错误 404 not found Post Method
- codeigniter - Codeigniter 完整日历集成
- python - 如何使用 pandas 进行条件选择
- yii2 - Yii2 - 将控制器扩展为现有模块