dyncoverage
v1.0.2
Published
CLI utility to analyze JS files and call all functions for full code coverage via nyc or c8
Readme
DynCoverage
CLI утилита для анализа JavaScript файлов и автоматического вызова всех функций для получения полного покрытия кода через nyc.
Установка
npm installДля глобальной установки:
npm linkИспользование
dyncoverage <directory>Опции
-o, --output <dir>- Директория для сохранения сгенерированных тестовых файлов (по умолчанию:./.dyncoverage)-c, --config <file>- Путь к файлу конфигурации nyc--no-cleanup- Не удалять сгенерированные тестовые файлы после выполнения--report <type>- Тип отчета о покрытии (text, html, json, lcov) (по умолчанию: text)
Примеры
# Анализ текущей директории
dyncoverage .
# Анализ конкретной директории с HTML отчетом
dyncoverage ./src --report html
# Сохранить сгенерированные тесты
dyncoverage ./src --no-cleanup
# Использовать кастомную конфигурацию nyc
dyncoverage ./src --config .nycrc.jsonКак это работает
- Анализ: Утилита сканирует указанную директорию и находит все JavaScript файлы
- Парсинг: Используя Babel parser, извлекает все функции (декларации, выражения, методы классов, стрелочные функции)
- Генерация тестов: Создает автоматический тестовый файл, который вызывает все найденные функции
- Покрытие: Запускает nyc для измерения покрытия кода при выполнении сгенерированных тестов
Требования
- Node.js 14+
- nyc (устанавливается автоматически через npx или можно установить локально:
npm install --save-dev nyc)
Ограничения
- Функции с побочными эффектами могут вызывать ошибки при выполнении
- Некоторые функции могут требовать специфичные параметры, которые утилита пытается угадать
- Приватные методы классов (начинающиеся с
#) пропускаются - Конструкторы классов пропускаются
Структура проекта
dyncoverage/
├── bin/
│ └── dyncoverage.js # CLI точка входа
├── lib/
│ ├── analyzer.js # Анализ файлов и извлечение функций
│ ├── generator.js # Генерация тестовых файлов
│ └── coverage.js # Интеграция с nyc
├── package.json
└── README.md