jpmorganchase / modular

A modular front end development framework

Home Page:https://modular.js.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ts-jest transform cache causes memory leak when using multiple processes in CI

cangarugula opened this issue · comments

commented

This issue is discussed here: kulshekhar/ts-jest#1967

When running tests with multiple processes (maxWorkers > 1), ts-jest caches transformed results multiple times, resulting in a memory leak issue. The failure occurs in a CI pipeline with these errors:

Screen Shot 2021-06-07 at 6 28 20 AM

Screen Shot 2021-06-07 at 6 27 10 AM

The tests that fail due to memory issues do not stay consistent when running with workers.

While these errors don't show locally, when logging heap usage, you can see that each test has an increased heap size. Here is a sample of heap size logs:

Screen Shot 2021-06-07 at 6 46 25 AM

Hey @cangarugula, Would be curious to know, if have you tried with jest CLI flag runInBand ??

Can we have something where we can transpile from TSX to js before running the test, then this would too speed up the test cases execution.

isolatedModules being set to true will fix a memory leak in ts-jest. However, type checking will not be performed whilst running tests (will still have type checking when writing tests)

globals: {
    'ts-jest': {
      isolatedModules: true,
    },
  },