dyncoverage
v1.0.2
Published
CLI utility to analyze JS files and call all functions for full code coverage via nyc or c8
Downloads
384
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