Решил в итоге прокачать uvu. Самое круто, что с uvu файл теста — это уже исполняемый скрипт.
1. Я каждый тест запускаю, как отдельную программу для изоляции
2. Использую xargs -P $(nproc), чтобы запустить программы параллельно
https://github.com/hplush/slowreader/blob/main/scripts/tsm-every
3. tsm позволяет писать тесты на TS и отлично работает с TSM.
4. c8 отдельной командой добавляет coverage.
https://github.com/hplush/slowreader/blob/main/core/package.json#L7-L8
5. В xargs output нужен, чтобы печатать вывод теста только после того, как он закончился
6. И я изучаю вывод теста на случай редких ошибок, когда uvu не заметила тест который сделал throw undefined и подобное
Плюс с помощью pnpm run я вообще все скрипты запускаю параллельно (проверку типов, линтеры, проверку TS в шаблонах Svelte).
В итоге тесты всё по максимум использует ядра ЦПУ.
И на все юнит-тесты нужно лишь десяток зависимостей — 37 МБ (!) node_modules.
https://github.com/hplush/slowreader/blob/main/package.json
5. В xargs output нужен, чтобы печатать вывод теста только после того, как он закончился
6. И я изучаю вывод теста на случай редких ошибок, когда uvu не заметила тест который сделал throw undefined и подобное
Плюс с помощью pnpm run я вообще все скрипты запускаю параллельно (проверку типов, линтеры, проверку TS в шаблонах Svelte).