我正在使用webpack resolve.extensions来选择性地"捆绑我的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只解析.js
和.web.js
文件,就像webpack一样?
我将此添加到我的package.json中并继续解析.ios.js
和.android.js
"moduleFileExtensions": ["web.js", "js", "jsx"],
"moduleDirectories": [
"node_modules",
"main"]
我按照建议尝试:
"testPathIgnorePatterns": ["<rootDir>/node_modules/", "^.+\\.(android|ios)\\.js$"],
看起来没有效果:(
答案 0 :(得分:2)
您可以将testPathIgnorePatterns
添加到package.json
文件中。该值是一组正则表达式模式。任何与表达式匹配的文件/路径都将被忽略/跳过测试。
有关详细信息,请参阅these Jest docs
答案 1 :(得分:1)
您还可以将文件重新映射为空文件
touch empty.js
在你的jest配置中添加以下
moduleNameMapper: {
'\\.(css|jpg|png|scss|less|sass)$': '<rootDir>/empty.js',
},
适合我的作品