[!NOTE] Исторический инструмент: Blanket.js широко применялся для легковесного измерения покрытия в одном процессе с Mocha. Для современных проектов Node.js и TypeScript рекомендуются c8 (нативное покрытие V8) или NYC / Istanbul.
Blanket.js — библиотека оценки покрытия кода JavaScript, созданная для интеграции с такими тестовыми раннерами, как Mocha.
Установка
npm install --save-dev blanket
Настройка тестового хелпера
Подключите Blanket до импорта файлов, покрытие которых нужно измерить:
// test/helper.js
if (process.env.COVERAGE) {
require('blanket')({
pattern: require('path').resolve('./src')
});
}
// Подключайте модули после регистрации хука blanket
const myModule = require('../src/index');
Скрипты пакета
Добавьте команды покрытия в package.json:
{
"scripts": {
"test": "mocha test/",
"coverage": "env COVERAGE=1 mocha -R html-cov > coverage.html && open coverage.html"
}
}
Добавьте сгенерированный HTML-отчёт в .gitignore:
echo "coverage.html" >> .gitignore
Запустите генерацию отчёта о покрытии:
npm run coverage
Непрерывная интеграция (CI) и Coveralls
Установите LCOV-репортер и адаптер Coveralls:
npm install --save-dev mocha-lcov-reporter coveralls
Добавьте шаг запуска в пайплайнах CI:
mocha -R mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js