Всё не могу найти нормальный инструмент для юнит-тестов в Node.js.
Есть переусложнённые системы:
— У Jest свой resolver из-за этого его так и не могут починить с ESM и всё ломается.
— Есть Vitest, но он пакует всё через Vite и для Node.js-библиотек это бессмысленно.
Есть очень минимальные инструменты:
— Есть тесты встроенные в Node.js — но там некрасивый вывод.
— Есть минималистичный uvu, но там нет изоляции тестов и параллельного запуска (и он иногда пропускает тесты).
https://github.com/lukeed/uvu
Решил в итоге прокачать 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
Решил в итоге прокачать uvu. Самое круто, что с uvu файл теста — это уже исполняемый скрипт.
1. Я каждый тест запускаю, как отдельную программу для изоляции
2. Использую xargs -P $(nproc), чтобы запустить программы параллельно
https://github.com/hplush/slowreader/blob/main/scripts/tsm-every
3. tsm позволяет писать тесты на TS и отлично работает с TSM.
4. c8 отдельной командой добавляет coverage.