2017-02-22 155 views
0

我正在使用webpack resolve.extensions来“选择性地”捆绑我的js文件。 例如。忽略Jest文件扩展名

App.js

import MyComp from 'comp/myComp'; 

comp/文件夹中,我有:

MyComp.web.js 
MyComp.ios.js 
MyComp.android.js 

现在我想写测试App.js,测试它如何呈现为网页。但问题是继续解决所有3 .js文件,并导致依赖性错误,因为我没有在移动环境中运行该命令,并且大多数移动模块将无法工作。

我如何才能说笑话只解决.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$"], 

看起来没有影响:(

回答

1

你可以将testPathIgnorePatterns添加到您的package.json文件中。该值是一组正则表达式模式。任何匹配表达式wi的文件/路径将被忽略/跳过测试。

更多细节见these Jest docs

+0

我尝试''“testPathIgnorePatterns”:[“/n ode_modules /“,”^。+ \\。(ios | android)\\。js $“],''但仍不能按预期工作:S – Kossel

+0

我也试过'modulePathIgnorePatterns' – Kossel

+0

我不确定你的模式需要如此微调。你可以试试简单的[“MyComp.android.js”,“MyComp.ios.js”],让我知道这是否有效。 –

1

您也可以重新映射文​​件到一个空文件

touch empty.js 

在你开玩笑的配置添加以下

moduleNameMapper: { 
    '\\.(css|jpg|png|scss|less|sass)$': '<rootDir>/empty.js', 
    }, 

工作非常适合我