Я использую Mocha для тестирования моего приложения NodeJS. Я не могу понять, как использовать функцию покрытия кода. Я попытался найти его, но не нашел подходящего учебника. Пожалуйста помоги.
node.js
unit-testing
code-coverage
mocha
tusharmath
источник
источник
istanbul cover node_modules/mocha/bin/_mocha
.istanbul.cmd cover C:\Users\{UserName}\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
$(npm bin)
является каноническим ярлыком для./node_modules/.bin/
иistanbul/lib/cli.js
имеет псевдонимistanbul
в папке bin. Итак, вот более короткая команда:$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000
istanbul cover node_modules/mocha/bin/_mocha -- -R spec
Теперь ( 2020 г. ) предпочтительным способом использования Стамбула является его «современный интерфейс командной строки» nyc .
Настроить
Во-первых, установите его в свой проект с
Затем, если у вас есть проект на основе npm, просто измените тестовый скрипт внутри
scripts
объекта вашего файла package.json, чтобы выполнить покрытие кода ваших тестов mocha :Бегать
Теперь запустите ваши тесты
и вы увидите такую таблицу в консоли сразу после вывода результатов тестов:
настройка
HTML отчет
Просто используйте
вместо
text
. Теперь он выдаст отчет внутри./coverage/index.html
.Форматы отчетов
Стамбул поддерживает широкий спектр форматов отчетов. Просто посмотрите на его библиотеку отчетов, чтобы найти наиболее полезную для вас. Просто добавьте
--reporter=REPORTER_NAME
опцию для каждого формата, который вы хотите. Например, су вас будет и консоль, и html отчет.
Не запускайте покрытие с тестом npm
Просто добавьте другой скрипт в ваш
package.json
и оставьтеtest
скрипт только с вашим бегуном (например, мокко):Теперь запустите этот пользовательский скрипт
запускать тесты с покрытием кода.
Принудительный тест не пройден, если охват кода низкий
Сбой, если общий охват кода ниже 90%:
Ошибка, если охват кода хотя бы одного файла ниже 90%:
источник
--reporter=html
включен, но html-файл всегда пуст, ничего не показано о непокрытых блоках или% покрытия и т. Д., Только заголовки таблицыBlanket.js тоже отлично работает.
npm install --save-dev blanket
перед вашим test / tests.js
бегать
mocha -R html-cov > coverage.html
источник