jest configuration debugging jest based tests
Сазнајте више о Јест Цонфиг-у, отклањању грешака и упоређивању Јест-а са другим ЈаваСцрипт оквирима за тестирање, посебно Јест вс Моцха & Јест вс Јасмине:
У ово Информативна серија Јест , истражили смо све о томе Тестирање Реацт апликација, изругивања и шпијуна помоћу Јест-а у нашем последњем упутству.
У овом упутству ћемо сазнати више о датотекама Јест Цонфиг и видећемо како заправо можете отклонити грешке у тестовима Јест ради решавања проблема са једним или више тестова.
Такође ћемо истражити неке од најчешће коришћених опција у датотеци Јест Цонфиг које се могу самостално поставити у пројекту или оне које се могу додати као део саме конфигурације пацкаге.јсон.
Користићемо Висуал Студио Цоде за писање наших Јест тестова и користили бисмо проширење или додатак у ВС Цоде-у да бисмо омогућили подршку за отклањање грешака за Јест тестове.
Поред тога, упоредићемо различите оквире за тестирање Јавасцрипта као што су Моцха и Јасмине са Јест-ом и разумећемо предности и мане једних од других.
Шта ћете научити:
Постоји Цонфиг
Конфигурација Јест може се одредити на 3 начина
- Преко кључа у датотеци пацкаге.јсон.
- Кроз датотеку јест.цонфиг.јс - Конфигурациона датотека написана као модул.
- Преко ЈСОН-а који се може користити са опцијом –цонфиг флаг.
Уз све горе наведене приступе можете постићи исти исход. Погледајмо први корак - тј. Додавање Јест конфигурације кроз кључ у датотеци пацкаге.јсон.
У постојећу датотеку пацкаге.јсон додајте нови кључ под називом „јест“. Ово није ништа друго до скуп парова кључ / вредност у ЈСОН формату. Све опције конфигурације повезане са Јестом могу се даље додати овом одељку у датотеци пацкаге.јсон.
У наставку су наведене најчешће коришћене опције конфигурације.
# 1) Покривеност
ЦоллецтЦовераге, ПокривеностПрага, ПокривеностРепортера, ПокривеностДиректоријум - То су најчешће коришћене опције. Покривеност је важна метрика и осигурава да се код тестира према унапред подешеном прагу.
Детаљно објашњење сваког од њих је следеће:
# 1) цоллецтЦовераге: Ова опција се користи за одређивање да ли желимо да Јест тест тркач прикупља информације о покривености или не. Када се постави на Тачно, Јест тркач прикупља информације о покривености. Помоћу ове опције покривеност ће бити прикупљена и приказана на конзоли на крају извођења теста, као што је приказано доле.
# 2) Праг покривености: Ова поставка нам омогућава да одредимо граничне вредности за покривеност у процентуалном смислу. Ово је од велике помоћи када организација или тим жели да се придржава одређене минималне вредности покривености без које ниједан код не може да се потисне или споји у главну грану.
Да видимо како се ово може користити.
Покривеност се може одредити на глобалном нивоу, нивоу датотеке или било ком другом регуларном изразу. Када се наведе на глобалном нивоу, сви наведени прагови треба да се подударају за комбиноване све датотеке у пројекту.
'coverageThreshold': { 'global': { 'branches':95, 'functions':100, 'lines':70, 'statements':-2 } }
Такође је могуће навођење покривености на нивоу датотеке, променом „глобално“ у име датотеке или регуларни израз. Конфигурације прага могу се разликовати у зависности од захтева.
'coverageThreshold': { './src/calculator.js': { 'branches':100, 'functions':100, 'lines':100, 'statements':-10 } }
# 3) извештавање о извештавању: Ова конфигурација се користи за одређивање репортера који желите да користите за генерисање извештаја о покривености. Постоји много постојећих извештача као доступних НПМ пакета који се могу користити за генерисање извештаја о покривености на крају извршења теста.
# 4) Именик покривености: Ова поставка омогућава кориснику да одреди директоријум у којем ће извештаји о покривености бити сачувани или задржани након креирања.
Доље је дат комбиновани пример коришћења свих подешавања конфигурације у вези са покривеношћу.
'jest':{ 'collectCoverage':true, 'coverageThreshold': { 'global': { 'branches':95, 'functions':100, 'lines':70, 'statements':-2 }, './src/calculator.js': { 'branches':100, 'functions':100, 'lines':100, 'statements':-10 } }, 'coverageReporters': ( 'lcov','text' ), 'coverageDirectory': './output/code-coverage/' }
Овде смо користили 2 извештача о покривености, тј. Лцов и тект.Лцов је покривеност линије Линука и подразумевано је присутна, а извештач „тект“ значи да ће излаз покривености бити приказан и на конзоли. Извештај о покривености ће се генерисати на путањи наведеној у поставци „покрывањеДиректоријум“.
# 2) Моцк Релатед
Исмеци се често користе током тестирања са Јестом. Обе доленаведене опције конфигурације омогућавају лако конфигурисање и уклањање ругалица.
- аутоМоцкс: Ако се постави на Тачно, ово ће се ругати свим модулима који су подразумевано увезени у тесту.
- цлеарМоцкс: Ако се постави на Тачно, ово ће обрисати све исмејане поставке / модуле након сваког теста, тако да сваки тест започиње са новим стањем. То се такође може постићи коришћењем тестЦлеануп или методом „афтер“, али ако га имате у конфигурацији, то је још лакше.
# 3) Тестови повезани
# 1) тестТимеоут: Ова конфигурација се користи за обезбеђивање поставки тешког временског ограничења за тестове у милисекундама. Било који тест који пређе више од овог конфигурисаног прага биће означен као неуспешан због изузетка за временско ограничење.
'jest' { 'testTimeout': 100 }
# 2) Глобално: Ова конфигурација се користи за постављање глобалних променљивих које би требале бити доступне уз сваки тест.
'jest' { 'globals': { 'globalVar': 'test global variable!' } }
Покушајмо да користимо глобалну променљиву у тесту и видимо да ли ради како се очекује.
describe('Calculator tests', () => { test('add 2 numbers', () => { // arrange & act const val = mathOps.sum(3,4) console.log(globalVar) // assert expect(val).toBe(7) })
Након извршења овог теста, вредност глобалВар треба да се евидентира.
бинарно стабло претраживања ц ++ код
Проверавати овде за исцрпан списак свих опција конфигурације.
Видео водич за конфигурацију ИС
Отклањање грешака помоћу Јест-а
У овом одељку ћемо покушати да разумемо како можемо да отклонимо грешке у тестовима написаним на основу Јест-а.
Применићемо и разумећемо 2 различита начина на која можемо да отклонимо грешке у тестовима.
- Изворни програм за отклањање грешака Ноде-а, а затим помоћу Цхроме Инспецтор-а за отклањање грешака у тестовима.
- Коришћење конфигурације за отклањање грешака Висуал Студио Цоде за отклањање грешака у тестовима у самом уређивачу Висуал Студио Цоде. Ово је најчешће коришћени начин отклањања грешака, јер је Висуал Студио Цоде подразумевани уређивач који је одабран за већину Јавасцрипт-ових данашњих дана.
Сваки од ових приступа је детаљно објашњен у наставку.
# 1) Коришћење Ноде-овог матичног програма за отклањање грешака
Да бисмо користили изворни програм за отклањање погрешака Ноде ЈС, у тест морамо да убацимо кључну реч ‘програм за отклањање грешака’, где желимо да поставимо тачку прекида.
Једном када се извршилац теста сусретне са програм за отклањање грешака наредба, зауставља извршење и ако приложимо алате за отклањање грешака хромом, тада можемо отклонити грешке у тестном коду (као и функцији која се тестира) помоћу Цхроме алата.
Прегледач Цхроме је овде предуслов за коришћење Ноде-овог Нативе Дебуггер-а.
Слиједите кораке у наставку.
# 1) Додајте кључну реч за отклањање грешака у тест, тј. На месту где желите да тест погоди тачку прекида, убаците наредбу „отклањање грешака“
#два) Извршите тест користећи –инспецт-брк заставицу.
Користите наредбу испод да бисте извршили тест у режиму тачке прекида.
/usr/local/bin/node --inspect-brk ./node_modules/jest/bin/jest.js --runInBand
# 3) Приложите програм за отклањање погрешака чвора у Цхроме. Сада у прегледачу Цхроме идите до цхроме: // прегледајте и повежите се са циљним преслушавачем који је створен горњим кораком.
# 4) Наставите са извршењем и видећете да тачка прекида погађа инспектор за отклањање грешака хрома и можете отклонити грешке у стеку позива и стању објекта у самом хром програму за отклањање погрешака.
Овакав приступ отклањању грешака у Јест тестовима је у реду, али није врло користан за употребу јер треба да наставите да се пребацујете са уређивача кода на Цхроме и обрнуто што узрокује много трења. У предстојећем одељку видећемо начине конфигурисања програма за отклањање грешака у самом уређивачу Висуал Студио Цоде.
# 2) Коришћење конфигурације за отклањање грешака ВС кода
# 1) Изаберите одељак Отклањање грешака / покретање Висуал Студио кода на левој табли.
#два) Сада ћемо ажурирати конфигурацију за отклањање грешака за тестове шале. Да бисте то урадили, додајте нову конфигурацију избором опције менија.
# 3) Једном када је изабрана опција додавања конфигурације, отвориће датотеку `лаунцх.јсон` са подразумеваним садржајем у окну уређивача. Уклоните подразумевани садржај и копирајте садржај испод да бисте креирали конфигурацију за отклањање грешака за Јест тестове.
{ 'version': '0.2.0', 'configurations': ( { 'name': 'Debug Jest Tests', 'type': 'node', 'request': 'launch', 'runtimeArgs': ( '--inspect-brk', '${workspaceRoot}/node_modules/jest/bin/jest.js', '--runInBand' ), 'console': 'integratedTerminal', 'internalConsoleOptions': 'neverOpen', 'port': 9229 } ) }
# 4) Сачувајте ново додану конфигурацију садржаја која ће се користити за отклањање грешака у тестовима Јест. Ако пажљиво прочитате конфигурацију, слично је ономе што смо урадили када смо покушали да се повежемо са програмом за отклањање погрешака Ноде у алаткама Цхроме Девелопер помоћу команде.
--inspect-brk ./node_modules/jest/bin/jest.js --runInBand
Предност ове конфигурације је у томе што ће се тестови покретати / отклањати грешке као део самог уређивача (у овом случају то је ВСЦоде) и не треба да се повезујемо са било којом спољном апликацијом.
# 5) Једном када се креира конфигурација за отклањање грешака, сада можете додати тачке прекида у тестове и извршити помоћу ове РУН конфигурације. Ово ће осигурати да се тест заустави на тачкама прекида и да можете отклонити грешке у вредностима и стању објекта на тачки прекида у стварној датотеци теста.
Тачке прекида могу се додати кликом на бројеве редова у датотекама кода.
# 6) Једном када се дода тачка прекида, можемо да изаберемо конфигурацију Покрени коју смо додали у кораку # 3 да бисмо извршили / отклонили грешке у тесту.
# 7) Када одаберете / кликнете на дугме Рун, требало би да видите да извршење погађа тачку прекида која је постављена и можете добити више детаља као што су вредности окружења / променљиве, траг стека итд. На тачки прекида.
Тастери за контролу тачке прекида / протока кода могу се користити за прелазак на следећу тачку прекида или за кретање унутар функције за више детаља.
наочаре за виртуелну стварност за кбок оне
Видео лекције Он ЈЕОтклањање грешака
Ту је Моцха против Јасмине
У наставку ћемо упоредити Јест вс Моцха и Јест вс Јасмине на различитим параметрима и упоређивање карактеристика као што су Снапсхот тестирање, Једноставност конфигурације и Могућности различитих оквира.
Параметар | Је | Моцха | Јасмине |
---|---|---|---|
Подржани типови тестирања | Углавном се користи за јединствено тестирање. | Јединствено тестирање | Јединствено тестирање и Е2Е испитивање. |
Снапсхот тестирање | Потпуно подржано - Јест се посебно користи за компоненте Реацт, подржава прављење снимака компоненте и њихово коришћење за упоређивање излазних резултата теста са сачуваном структуром компонената. Снимке су одличан начин да се осигура да се кориснички интерфејс не мења неочекивано. | Без подршке | Без подршке |
Тврдње и подударности | За подударање користите библиотеку ава.јс. | Подршка за уграђени модул за утврђивање Ноде-а, а такође може да укључује и друге библиотеке тврдњи. | У изграђеним тврдњама |
Подругљив | Потпуно изграђен као подршка за Моцкс анд Стубс у Јесту. | Нема уграђене подршке за ругање или трљање. Може се користити са другим библиотекама као што је Синон за подршку исмевању. | Уграђена ограничена подршка помоћу шпијуна. Може да се интегрише са другим библиотекама. |
Брзина извршења | 4к Јест тестови су изоловани у сопственом песковнику. Тако се Јест тестови у суштини одвијају паралелно, због чега пружају знатно побољшање времена извршења. | Икс Не подржава паралелно извршавање тестова. | Икс Не подржава паралелно извршавање тестова. |
Конфигурација и подешавање | Врло једноставно - потребна је нулта конфигурација. | ||
Начин извођења теста | Без главе | Без главе | Без главе |
Резултат теста и контекст | Генерише богато извршавање контекста након извођења - Јест пружа детаљан тестни контекст да би се дубоко ушло у оно што је изазвало неуспех, осигуравајући тако лако отклањање грешака. | Резултат теста није баш читљив и отклањање грешака чини мало изазовним. | |
Отклањање грешака | Подршка за матичне програме за отклањање погрешака Ноде такође се може користити за отклањање грешака у уређивачима као што је Висуал Студио Цоде кроз засебну конфигурацију покретања. | Подржава изворни програм за отклањање погрешака Ноде. | Може да користи карма тест тркач за покретање тестова у Цхроме-у и отклањање грешака. |
Покривеност кодом | Јест има уграђену подршку за покривање кода. Конфигурација покривености може се навести у Јест конфигурацији и извештаји се могу генерирати са сваким извршавањем теста. | Нема уграђене подршке. Пружа подршку спољним библиотекама за генерисање извештаја о покривености. | Исто као и Мока |
Стил тестирања | БДД Сва три оквира подржавају тестове који треба да буду написани као скуп спецификација или спецификација што их чини читљивијим. | БДД | БДД |
Закључак
У овом упутству смо сазнали о различитим начинима на које можете отклањати грешке у тестовима Јест у Висуал Студио Цоде-у или у Цхроме Инспецтор-у помоћу Ноде-овог изворног програма за отклањање грешака.
Такође смо истражили најчешће коришћене опције конфигурације у конфигурационој датотеци Јест. Јест конфигурација помаже у постизању многих ствари попут покривања кода, ХТМЛ извештаја, постављања лажног понашања, постављања глобалних променљивих итд.
ПРЕВ Туториал |. | ПРВИ Водич
Препоручено читање
- Водич за Јест - ЈаваСцрипт јединствено тестирање помоћу Јест Фрамеворк-а
- Како тестирати реаговане апликације помоћу Јест Фрамеворк-а
- Водич за Јасминов оквир, укључујући јасминов џери са примерима
- Дистрибуиране грађе: Јенкинс главна конфигурација славе
- Технике отклањања грешака у селенијуму: тачке прекида, режим отклањања грешака и друго
- Водич за испитивање конфигурације са примерима
- Како поставити Ноде.јс оквир за тестирање: Водич за Ноде.јс
- 25 најбољих Јава оквира за тестирање и алата за аутоматско тестирање (3. део)