开玩笑会忽略根目录下的__mocks__目录

时间:2019-10-10 16:37:05

标签: javascript jestjs

我大致具有以下结构

Root
├ __tests__
├ Directory0
│  ├ childA
│  │   └ __mocks__
│  │         └ module_a.js
│  └ childB        
│      └ __mocks__
│            └ module_a.js
├ Directory1
│    └ …
├ Directory2
│    └ …
└ DirectoryN

我正在尝试为根目录设置jest,但完全忽略了Directory0 根测试将驻留在__tests__中,某些子目录具有自己的jest配置并分别进行测试,存在重复的模拟(由于这些模板是要复制的模板,因此无法拥有一个共享的模拟),而jest是选择这些嘲笑并发出警告。

我已经尝试过 testPathIgnorePatterns: ['<rootDir>/Directory0/'] 没有成功

3 个答案:

答案 0 :(得分:1)

如果您拥有最好的配置,请将其添加到package.json中

"collectCoverageFrom": [
  "**/*.{js,jsx}",
  "!**/Directory0/**"
],

更改"**/*.{js,jsx}",以符合您的情况。

在此处了解更多信息:https://jestjs.io/docs/en/configuration#collectcoveragefrom-array

答案 1 :(得分:1)

正是@Harrison Kamau 所说的“roots”配置。

https://jestjs.io/docs/en/configuration#roots-arraystring

"jest": {
    "setupFiles": [
      "<rootDir>/jest/setEnvVariables.js"
    ],
    "testPathIgnorePatterns": [
      "/packages/"
    ],
    "roots": ["<rootDir>/src/"]
  },

为我工作,忽略了我的包文件夹中的模拟。

答案 2 :(得分:0)

我确定这是您要寻找的东西: 将__tests__添加到roots中的jest.config.js列表中:

module.exports = {
  roots: [`<rootDir>/__tests__`],
};

参考:

https://github.com/facebook/jest/issues/2726#issuecomment-390625860