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