Я провожу 60 тестов E2E с Jest и Puppeteer на подчиненном EC2 Jenkins. Время испытаний колеблется от 7 до 90 секунд, в среднем за 24 секунды, что означает общее время при последовательной работе ~ 24-25 минут. При запуске jest -w 10
он запускает 10 тестов параллельно, но каждый тест занимает больше времени, а время напоминает jest --runInBand
, оба заканчиваются примерно через 24-26 мин.
Я читаю это и связанные с нимиссылки и т.д. изменили машину, на которой я работаю, на r5ad.12xlarge
(48 ядер, 384 ГБ!) из-за предположения об ограниченных ресурсах и по-прежнему не влияющих на общее время работы. Больше попыток я сделал:
- Пробовал с
--ci --detectOpenHandles
и без него, все равно ничего. NODE_OPTIONS=--max_old_space_size=4096
тоже не изменилось. - Ран с по умолчанию, 2, 3, 9, 15 ... working.
- Проверено использование кучи с помощью
node --expose-gc ./node_modules/.bin/jest --runInBand --logHeapUsage
и обнаружены некоторые утечки - использование кучи постепенно увеличилось с ~ 100 МБ до 1100 МБ - Пробовал работать локально намашина (без ограничений Jenkins на ресурсы, если таковые имеются ...)
У меня вопрос, если я что-то упускаю (флаг, политика агента Jenkins)? Может быть, я должен попробовать другой тестер для целей E2E, потому что jest больше ориентирован на юнит-тестирование?