React Native + Jest EMFILE: too many open files error
I'm running windows in powershell. Also used Git Bash and had similar problems. I updated my package.json as follows:
"devDependencies": {
"jest-cli": "^0.8.2",
},
"jest": {
"testPathDirs": ["__tests__"],
"testPathIgnorePatterns": [
"/node_modules/"
]
},
"scripts": {
"test": "jest"
},
Note that "testPathDirs": ["__tests__"],
is the directory I place all my tests in.
Now I can run npm test
without an issue. Ultimately it seems Jest is navigating the /node_modules/
directory which should be excluded.
I encountered this problem and fixed it by running
brew upgrade watchman
I had the same problem with a small vuejs project. In my case the fix was just a small configuration property: I put this in to my jest.config.js
watchPathIgnorePatterns: ['node_modules'],
For anyone withe the same problem with vuejs. Here's my full jest.config.js
file:
module.exports = {
preset: '@vue/cli-plugin-unit-jest',
transformIgnorePatterns: ['/node_modules/(?!(leaflet))'],
watchPathIgnorePatterns: ['node_modules'],
testMatch: [
'<rootDir>/src/**/*.spec.js'
],
};
Short answer: adding 'ulimit -n 4096' to ~.bash_profile and opening a new terminal window resolved my issue.
The answer had to do with me not setting the ulimit properly.
sudo ulimit -n 10240
on my Mac silently doesn't change the ulimit. I had originally thought it was not doing anything because 10240 is not an increment of 1024. But it also didn't do anything when I tried 2048, 4096, etc.
So, what is "the" solution?
- ulimit -n (without a number) will tell you what the current value is
- for me, typing
sudo ulimit -n 2048
in a terminal window did NOT change the ulimit (no matter what number I tried) - adding 'ulimit -n 4096' to ~.bash_profile and opening a new terminal solved the problem