Есть ли способ обеспечить покрытие кода в среде тестирования Javascript Jest, построенной на основе Jasmine?
Внутренняя структура не распечатывает получаемое покрытие кода. Я также пробовал использовать Istanbul , blanket и JSCover , но ни один из них не работает.
javascript
jestjs
Алекс Палкуи
источник
источник
Ответы:
При использовании Jest 21.2.1 я могу видеть покрытие кода в командной строке и создавать каталог покрытия, переходя
--coverage
к сценарию Jest. Вот несколько примеров:Я обычно устанавливаю Jest локально, и в этом случае команда может выглядеть так:
npx jest --coverage
Я предполагаю (хотя и не подтверждал), что это также будет работать, если я установлю Jest глобально:
jest --coverage
Очень редкие документы находятся здесь
Когда я перешел в каталог охвата / lcov-report, я нашел файл index.html, который можно было загрузить в браузер. Он включал информацию, напечатанную в командной строке, а также дополнительную информацию и некоторые графические данные.
источник
node_modules
via./node_modules/.bin/jest --coverage
. Пока пакет назван в package.json, вы можете гарантировать выполнение именно той версии шутки, которую ожидаете.ОБНОВЛЕНИЕ: 20.07.2018 - Добавлены ссылки и обновлено название для репортеров.
ОБНОВЛЕНИЕ: 14.08.2017 - Этот ответ полностью устарел. Просто посмотрите документацию Jest. У них есть официальная поддержка и документация о том, как это сделать.
У @hankhsiao есть разветвленное репо, в котором Стамбул работает с Jest. Добавьте это в свои зависимости разработчика
Также убедитесь, что покрытие включено в вашей записи jest package.json и вы также можете указать нужные форматы. (HTML - довольно плохая задница).
См. Документацию Jest для покрытияReporters (по умолчанию
["json", "lcov", "text"]
)Или добавьте,
--coverage
когда вызываете шутку.источник
coverageReporters
и по умолчанию это["json", "lcov", "text"]
. См. Facebook.github.io/jest/docs/…Январь 2019: версия Jest 23.6
Для тех, кто недавно изучает этот вопрос, особенно при тестировании с использованием
npm
илиyarn
напрямуюВ настоящее время вам не нужно изменять параметры конфигурации
Согласно официальному сайту jest , вы можете сделать следующее для создания отчетов о покрытии:
1- Для npm:
Вы должны поставить
--
перед передачей--coverage
аргумента шуткиесли вы попытаетесь вызвать
--coverage
напрямую без--
него, это не сработает2- Для пряжи:
Вы можете передать
--coverage
аргумент шутки напрямуюисточник
--watch
для этого настройку.package.json
.Хорошо, проигнорируйте мой предыдущий ответ, поскольку кто-то сказал мне, что это не решило проблему.
Новый ответ:
1) Проверьте последнюю шутку (v 0.22): https://github.com/facebook/jest
2) Команда facebook помещает Стамбул как часть отчета о покрытии, и вы можете использовать его напрямую.
3) После выполнения jest вы можете получить отчет о покрытии на консоли, а в корневой папке, установленной jest, вы найдете отчет о покрытии в формате json и html.
4) К вашему сведению, если вы устанавливаете из npm, вы можете не получить последнюю версию; поэтому сначала попробуйте github и убедитесь, что покрытие именно то, что вам нужно.
Старый ответ:
У меня такая же проблема. Короткий ответ:
Istanbul
иJest
НЕ работают вместе.Проверьте следующие страницы для получения более подробной информации:
https://github.com/facebook/jest/issues/101
@Ciro Costa:
config.collectCoverage
НЕ работает, так как это функция TODO. Пожалуйста, проверьте исходный код.источник
Если у вас возникли проблемы с неработающим параметром --coverage, это также может быть связано с тем, что у вас включены репортеры, не добавленные «text» или «text-summary». Из документации: «Примечание. Установка этого параметра перезаписывает значения по умолчанию. Добавьте« текст »или« текст-сводку », чтобы увидеть сводку покрытия в выходных данных консоли». Источник
источник
Настройте файл package.json
Теперь запустите:
Все тесты начнутся, и вы получите отчет.
источник
У меня была такая же проблема, и я исправил ее, как показано ниже.
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
После написания тестов запустите команду npm run jest-охват. Это создаст папку покрытия в корневом каталоге. /coverage/icov-report/index.html содержит html-представление покрытия кода.
Удачного кодирования!
источник
Попробуйте наглость . Я только что его использовал. И я писал об этом в блоге о том, как интегрироваться в Visual Studio.
Вот как я сделал покрытие кода с помощью Chutzpah: http://francorobles.wordpress.com/2014/09/14/code-coverage-with-chutzpah/
источник
require
.