用Jest忽略文件扩展名

时间:2017-02-22 04:22:36

标签: unit-testing reactjs jestjs enzyme

我正在使用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$"],

看起来没有效果:(

2 个答案:

答案 0 :(得分:2)

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

有关详细信息,请参阅these Jest docs

答案 1 :(得分:1)

您还可以将文件重新映射为空文件

touch empty.js

在你的jest配置中添加以下

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

适合我的作品