我大致具有以下结构
Root
├ __tests__
├ Directory0
│ ├ childA
│ │ └ __mocks__
│ │ └ module_a.js
│ └ childB
│ └ __mocks__
│ └ module_a.js
├ Directory1
│ └ …
├ Directory2
│ └ …
└ DirectoryN
我正在尝试为根目录设置jest,但完全忽略了Directory0
根测试将驻留在__tests__
中,某些子目录具有自己的jest配置并分别进行测试,存在重复的模拟(由于这些模板是要复制的模板,因此无法拥有一个共享的模拟),而jest是选择这些嘲笑并发出警告。
我已经尝试过
testPathIgnorePatterns: ['<rootDir>/Directory0/']
没有成功
答案 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