Има ли начин да има покритие на кода в рамката за тестване на JavaScript Jest, която е изградена върху Jasmine?
Вътрешната рамка не отпечатва кода покритие получава. Опитах също да използвам Истанбул, одеало и JSCover, но нито едно от тях работа.
Има ли начин да има покритие на кода в рамката за тестване на JavaScript Jest, която е изградена върху Jasmine?
Вътрешната рамка не отпечатва кода покритие получава. Опитах също да използвам Истанбул, одеало и JSCover, но нито едно от тях работа.
Когато използвам Jest 21.2.1, мога да видя покритието на кода в командния ред и да създам директория за покритие, като предам --coverage
на скрипта Jest. По-долу са дадени някои примери:
Склонен съм да инсталирам Jest локално, в който случай командата може да изглежда така:
npx jest --coverage
Предполагам (въпреки че не съм потвърдил), че това също ще работи, ако инсталирам Jest глобално:
jest --coverage
Много редките документи са тук
Когато навигирах в директорията coverage/lcov-report, намерих файл index.html, който можеше да бъде зареден в браузър. Той включва информацията, отпечатана в командния ред, плюс допълнителна информация и малко графичен изход.
node_modules
чрез ./node_modules/.bin/jest --coverage
. Докато пакетът е именуван в package.json, можете да гарантирате изпълнение с точната версия на шегата, която очаквате.
- person taystack; 28.01.2019
АКТУАЛИЗАЦИЯ: 20.07.2018 г. - Добавени връзки и актуализирано име за coverageReporters.
АКТУАЛИЗАЦИЯ: 14.08.2017 г. - Този отговор е напълно остарял. Просто погледнете документите на Jest сега. Те имат официална поддръжка и документация за това как да направят това.
@hankhsiao има разклонено репо, където Истанбул работи с Jest. Добавете това към вашите зависимости от разработчици
"devDependencies": {
"jest-cli": "git://github.com/hankhsiao/jest.git"
}
Също така се уверете, че покритието е активирано във вашия запис в package.json jest и можете също да посочите формати, които искате. (HTML-ът е доста лош).
"jest": {
"collectCoverage": true,
"coverageReporters": ["json", "html"],
}
Вижте документацията на Jest за coverageReporters (по подразбиране е ["json", "lcov", "text"]
)
Или добавете --coverage
, когато извиквате шега.
coverageReporters
и по подразбиране е ["json", "lcov", "text"]
. Вижте facebook.github.io/jest/docs/
- person Karsten S.; 13.04.2017
За всеки, който наскоро разглежда този въпрос особено ако тества директно с npm
или yarn
В момента не е необходимо да променяте опциите за конфигурация
Според официалния уебсайт на Jest можете да направите следното за генериране на отчети за покритие:
Трябва да поставите --
преди да подадете аргумента --coverage
на Jest
npm test -- --coverage
ако се опитате да извикате --coverage
директно без --
, няма да работи
Можете да подадете аргумента --coverage
на шега директно
yarn test --coverage
--watch
за това.
- person koehn; 17.03.2020
package.json
.
- person airtonix; 06.06.2020
Проверете най-новия Jest (v 0.22): https://github.com/facebook/jest
Екипът на Facebook добавя изходния код за покритие на Истанбул като част от отчета за покритие и можете да го използвате директно.
След като изпълните Jest, можете да получите отчет за покритие в конзолата и под главната папка, зададена от Jest, ще намерите отчета за покритие в JSON и HTML формат.
FYI, ако инсталирате от npm, може да не получите най-новата версия; така че първо опитайте GitHub и се уверете, че покритието е това, от което се нуждаете.
Това работи за мен:
"jest": {
"collectCoverage": true,
"coverageReporters": ["json", "html"]
},
"scripts": {
"test": "jest --coverage"
},
тичам:
yarn/npm test
Ако имате проблеми с --coverage, което не работи, това може да се дължи също и на това, че coverageReporters са активирани без добавени „text“ или „text-summary“. От документите: „Забележка: Задаването на тази опция презаписва стойностите по подразбиране. Добавете „текст“ или „текст-резюме“, за да видите обобщение на покритието в изхода на конзолата.“ Източник
Ако използвате рамката NestJS, можете да получите покритие на кода, като използвате тази команда:
npm run test:cov
Можете да стартирате npx jest --coverage -- path/to/your/file.spec.js, което ще покаже покритие за засегнатите файлове
Ако искате да видите това в браузър, можете да направите следното,
След това можете визуално да видите всички зони на покритие.
Можете също да се обърнете към тази връзка по-долу за повече информация https://dev.to/stevescruz/awesome-jest-tip-coverage-report-h5j
Имах същия проблем и го поправих, както е показано по-долу.
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
След като напишете тестовете, изпълнете командата npm run jest-coverage
. Това ще създаде папка с покритие в основната директория. /coverage/icov-report/index.html има HTML изглед на покритието на кода.
--
просто е необходимо да се използва npm, yarn предава всички аргументи на шега.
- person Angel Fraga Parodi; 20.01.2021
Опитайте Chutzpah. Току що го използвах. И писах в блог за това как да се интегрирам във Visual Studio.
Ето как направих кодово покритие с Chutzpah: Кодово покритие с Chutzpah
require
.
- person Alex Palcuie; 14.09.2014