使用 Jest 忽略文件扩展名
ignore file extension with Jest
我正在使用 webpack resolve.extensions 来 "selectively" 捆绑我的 js 文件。
例如
App.js
import MyComp from 'comp/myComp';
在 comp/
文件夹中我有:
MyComp.web.js
MyComp.ios.js
MyComp.android.js
现在我想为 App.js
编写测试,以测试它如何呈现为 Web。但问题是 Jest 一直在解析所有 3 个 .js
文件,这会导致依赖性错误,因为我不是 运行 移动环境中的命令,大多数移动模块将无法工作。
如何让 jest 像 webpack 一样只解析 .js
和 .web.js
文件?
我将它添加到我的 package.json 并且它继续解析 .ios.js
和 .android.js
"moduleFileExtensions": ["web.js", "js", "jsx"],
"moduleDirectories": [
"node_modules",
"main"]
我按照建议尝试了:
"testPathIgnorePatterns": ["<rootDir>/node_modules/", "^.+\.(android|ios)\.js$"],
看起来没有效果:(
您可以将 testPathIgnorePatterns
添加到您的 package.json
文件中。该值是一组正则表达式模式。任何与表达式匹配的 file/path 都将 ignored/skipped 来自测试。
有关详细信息,请参阅 these Jest docs
您也可以将文件重新映射到空文件
touch empty.js
在你的 jest 配置中添加以下内容
moduleNameMapper: {
'\.(css|jpg|png|scss|less|sass)$': '<rootDir>/empty.js',
},
非常适合我
我正在使用 webpack resolve.extensions 来 "selectively" 捆绑我的 js 文件。 例如
App.js
import MyComp from 'comp/myComp';
在 comp/
文件夹中我有:
MyComp.web.js
MyComp.ios.js
MyComp.android.js
现在我想为 App.js
编写测试,以测试它如何呈现为 Web。但问题是 Jest 一直在解析所有 3 个 .js
文件,这会导致依赖性错误,因为我不是 运行 移动环境中的命令,大多数移动模块将无法工作。
如何让 jest 像 webpack 一样只解析 .js
和 .web.js
文件?
我将它添加到我的 package.json 并且它继续解析 .ios.js
和 .android.js
"moduleFileExtensions": ["web.js", "js", "jsx"],
"moduleDirectories": [
"node_modules",
"main"]
我按照建议尝试了:
"testPathIgnorePatterns": ["<rootDir>/node_modules/", "^.+\.(android|ios)\.js$"],
看起来没有效果:(
您可以将 testPathIgnorePatterns
添加到您的 package.json
文件中。该值是一组正则表达式模式。任何与表达式匹配的 file/path 都将 ignored/skipped 来自测试。
有关详细信息,请参阅 these Jest docs
您也可以将文件重新映射到空文件
touch empty.js
在你的 jest 配置中添加以下内容
moduleNameMapper: {
'\.(css|jpg|png|scss|less|sass)$': '<rootDir>/empty.js',
},
非常适合我