nyc shareable configuration for https://github.com/nodutilus


Keywords
nyc, config, coverage, reporter, testing, esm
License
Unlicense
Install
npm install @nodutilus/nyc-config@0.3.1

Documentation

npm Build

nyc shareable configuration for github.com/nodutilus

Конфиг для анализа покрытия тестами модулей в формате ESM при помощи утилиты nyc с плагином babel-plugin-istanbul.

Основан на инструкции: istanbul tutorials/es2015

Правила по умолчанию

  • Проверяет покрытие на 100% (с флагом --all --instrument false), иначе падает с ошибкой
  • Исключения: coverage/**, **/{rollup,webpack}.config.js
  • Формат отчета text

Особенности

  • Поддерживает модули в формате "type": "module"
  • На лету преобразовывает модули в формат требуемый для nyc и @babel/register, не придется их дополнительно компилировать через babel.
  • Добавляет комманду: npx nodutilus-nyc

nodutilus-nyc

Выполнить в терминале: npx nodutilus-nyc

Внутри:

  npx cross-env NODE_ENV=nyc_esm_test npx nyc node test
  npx nyc check-coverage

Параметры:

  • --html - Добавит дополнительную команду npx nyc report --reporter=html, для формирования отчета в формате HTML

Пример:

npx nodutilus-nyc --html

Пример настройки проекта

package.json:

"devDependencies": {
  "@nodutilus/nyc-config": "latest"
}

.nycrc.json:

{
  "extends": "@nodutilus/nyc-config"
}

babel.config.json:

{
  "extends": "@nodutilus/nyc-config/babel"
}

Важно! Нужно использовать именно файл babel.config.json, чтобы корректно трансформировать содержимое node_modules

Пример в GitHub Actions

jobs:
  check:
    name: Checks
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - uses: actions/setup-node@master
        with:
          node-version: ">=14"

      - name: Install dependencies
        run: npm install

      - name: Coverage
        run: npx nodutilus-nyc

Пример в проекте