skip to Main Content

I have Jest tests that are running against the dockerized Neo4j Database, and sometimes they fail on CircleCI. The error message for all 25+ of them is :

thrown: "Exceeded timeout of 5000 ms for a hook.
@*******api:     Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."

Since they fail sometimes, like once in 25 runs, I am wondering if jest.setTimeout will solve the issue. I was able to fail them locally by setting jest.setTimeout(10), but I am not sure how to debug this even more, or whether something else could be an issue here aside from a small timeout (default 5000). I would understand if 1/25 or a few fails, or if all other suits fail, but only a single file with all tests within that file is failing. And it is always the same file, never some other file for this reason ever.

Additional information, locally, that single file runs in less than a 1000ms connected to the staging database which is huge compared to the dockerized that has only a few files at the time of running

2

Answers


  1. For anyone who sees this, I was able to solve this by adding the --maxWorkers=2 flag to the test command in my CircleCI config. See here for details: https://support.circleci.com/hc/en-us/articles/360005442714-Your-test-tools-are-smart-and-that-s-a-problem-Learn-about-when-optimization-goes-wrong-

    Login or Signup to reply.
  2. Naman’s answer is perfect! I couldn’t believe it but it really solved my problem. Just to be extra clear on how to do it:

    I change the test script from my package.json from jest to jest --maxWorkers=2. Then I pushed and it did solve my error.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search