Покрытие кода с Мокко

Я использую Mocha для тестирования моего приложения NodeJS. Я не могу понять, как использовать функцию покрытия кода. Я попытался найти его в Google, но не нашел подходящего учебника. Пожалуйста помоги.

Ответы на вопрос(3)

Сейчас (2019) предпочтительный способ использованияСтамбул через егосовременный интерфейс командной строки " NYC.

Настроить

Во-первых, установите его в свой проект с

npm i nyc --save-dev

Затем, если у вас есть проект на основе npm, просто измените тестовый скрипт внутриscripts объект вашегоpackage.json файл для выполнения покрытия кода вашегокофе мокко Тесты:

{
  "scripts": {
    "test": "nyc --reporter=text mocha"
  }
}

Бежать

Теперь запустите ваши тесты

npm test

и вы увидите такую таблицу в консоли сразу после вывода результатов тестов:

настройка

HTML отчет

Просто используйте

nyc --reporter=html

вместоtext, Теперь он создаст отчет внутри../coverage/index.html

Форматы отчетов

Стамбул поддерживает широкий спектр форматов отчетов. Просто посмотрите на егобиблиотека отчетов найти самое полезное для вас. Просто добавьте--reporter=REPORTER_NAME вариант для каждого формата, который вы хотите. Например, с

nyc --reporter=html --reporter=text

у вас будет и консоль и html отчет.

Дон»t выполнить покрытие с тестом npm

Просто добавьте еще один скрипт в свойpackage.json и оставитьtest Сценарий только с вашим участником (например, мокко):

{
  "scripts": {
    "test": "mocha",
    "test-with-coverage": "nyc --reporter=text mocha"
  }
}

Теперь запустите этот пользовательский скрипт

npm run test-with-coverage

запускать тесты с покрытием кода.

Принудительный тест не пройден, если охват кода низкий

Сбой, если общий охват кода ниже 90%:

nyc --check-coverage --lines 90 

Сбой, если охват кода хотя бы одного файла ниже 90%:

nyc --check-coverage --lines 90 --per-file

Blanket.js тоже отлично работает.

npm install --save-dev blanket

перед вашим test / tests.js

require('blanket')({
    pattern: function (filename) {
        return !/node_modules/.test(filename);
    }
});

бежатьmocha -R html-cov > coverage.html

Решение Вопроса

Вам нужна дополнительная библиотека для покрытия кода, и вы будете поражены тем, насколько мощным и простымСтамбул является. Попробуйте выполнить следующее, после того как пройдете тесты мокко:

npm install nyc

Теперь просто поместите команду nyc перед существующей тестовой командой, например:

{
  "scripts": {
    "test": "nyc mocha"
  }
}

Ваш ответ на вопрос