multiple ways execute junit tests
Овај водич приказује вишеструке начине извршавања ЈУнит тестова, као што је покретање као ЈУнит тест, коришћење пречица или покретање ЈУнит теста из командне линије итд.:
Видели смо како да напишемо основне ЈУнит тест случајеве и приступ фиксном тестирању као једну од добрих пракси програмирања за ЈУнит у нашем претходном водичу.
У овом упутству, погледајмо различите начине на које можемо користити за извршавање тестова за ЈУнит. Изненадићете се када погледате број доступних опција за покретање ових тестова.
=> Овде припазите на једноставну серију тренинга ЈУнит.
Шта ћете научити:
- Различити начини извођења ЈУнит тестова
- # 1) Покрените као ЈУнит тест
- # 2) Покрените последњи извршен ЈУнит тест путем опције менија
- # 3) Покрените користећи пречице
- # 4) Покрените само једну методу испитивања у класи
- # 5) Покрените ЈУнит тестове из командне линије
- # 6) Покрените Тест Суите користећи Теструннер Цласс
- # 7) Покрените ЈУнит тест случајеве користећи Мавен
- Закључак
- Препоручено читање
Различити начини извођења ЈУнит тестова
Да бисте извршили ЈУнит тестове, постоје одређени начини на које можете покренути једну датотеку класе са једним или више метода испитивања кроз следеће опције:
- Опција „Покрени као ЈУнит тест“.
- Покрените последњи извршени ЈУнит тест кроз опцију менија.
- Покрените помоћу пречица.
- Покрените само једну методу испитивања у класи.
- Прођите кроз командну линију.
- Покрените помоћу датотеке класе Теструннер.
- Покрените користећи и Мавен.
Белешка: Извршење ЈУнит теста кроз Мавен биће разматрано у посебном упутству за ЈУнит Мавен.
Понављајући поенту, у овом упутству ћемо научити како се више тестова може груписати у скуп тестова и како се може покренути пакет на различите начине. Поред тога, детаљно ће се навести одређене релевантне и повезане додатне информације.
# 1) Покрените као ЈУнит тест
Најједноставнији начин на који можете извршити ЈУнит тестове је:
Метод 1:
- Кликните десним тастером миша на датотеку класе у приказу Сцрипт
- Изаберите Покрени као -> ЈУнит тест
- Датотека класе се извршава.
Метод 2:
- Слично томе, датотеку класе можете одабрати из приказа Екплорера пакета
- Кликните десним тастером миша на датотеку
- Изаберите Покрени као -> ЈУнит тест
- Датотека класе се извршава.
Белешка: На овај начин можете извршити по једну датотеку класе.
# 2) Покрените последњи извршен ЈУнит тест путем опције менија
Можете покренути датотеку класе ЈУнит тако што ћете датотеку класе држати отвореном у уређивачу. Идите на горњи мени Ецлипсе => Изаберите Рун => Рун . Опција Рун -> Рун у основи значи поновити тест који сте последњи пут извршили.
Размотримо ЈУнит класу са више метода / тестова ради веће јасноће како Рун-> Рун Извођење радова:
- Сценарио 1 : Да сте водили појединачна метода са @Тест, па када кликнете Рун-> Рун , једина метода која је последња покренута извршила би се само овај пут, а не и цела класа ЈУнит.
- Сценарио 2 :А ти си водио читав разред претходно, Рун-> Рун би поновио целу датотеку класе.
Сада када знамо Рун-> Рун покреће тест који сте последњи радили, ово нас доводи до а питање ако можете да промените поставку опције Рун-> Рун?
Одговор на питање је Да, преференца опције Рун-> Рун може се променити. Постоји одређена конфигурација везана за Рун-> Рун.
Ево како то можете учинити:
до) Ецлипсеова поставка покретања је у основи подразумевана покрените изабрани ресурс или активни уређивач ако је доступан .
Па, шта подразумевано подешавање - „Покретање изабраног ресурса или активног уређивача ако је доступан“?
Одговор на ово је да неће извршити апликацију коју сте последњи покренули, већ ће следити репризу последње покренуте апликације за активни уредник .
б) Како онда променити подразумеване поставке?
Одговор на ово је да можете да промените подразумевану поставку у програму Ецлипсе да бисте покренули последњу апликацију коју сте покренули без обзира на активног уредника Имаш.
Испод је описано како мењате поставку опције Покрени користећи Покрени -> Покрени:
- Иди на Виндовс => Преференцес => Рун / Дебуг => Покретање
- „Лаунцх Оператион“ има подразумевано радио дугме - ' Покрените претходно покренуту апликацију ’ изабрано под другом опцијом „ Покрените изабрани ресурс или активни уређивач. Ако није могуће покренути : ’.
- Можда ћете морати да промените ову поставку у први радио тастер, тј. ' Увек покрените претходно покренуту апликацију “.
# 3) Покрените користећи пречице
Можете одабрати датотеку класе из приказа скрипте или приказа Екплорера пакета и користити доње пречице за извршавање ЈУнит тестова:
- Притисните тастере АЛТ + СХИФТ + Кс, Т. како би се извршила датотека класе ЈУнит.
- Алтернатива овоме била би штампа АЛТ + Р, затим ЦТРЛ + Ф11 за извршавање датотеке класе ЈУнит. АЛТ + Р, затим ЦТРЛ + Ф11 је пречица за опцију менија Рун -> Рун
# 4) Покрените само једну методу испитивања у класи
Понекад ћете можда желети да покренете једну методу тестирања ЈУнит.
У случају да се у датотеци класе ЈУнит налази више метода:
- Можете да одаберете или поставите курсор на име методе унутар приказа скрипте.
- Користите или горе наведене тастерске пречице или горе наведене опције за извршавање само оне методе коју сте управо изабрали.
Белешка: АЛТ + СХИФТ + Кс, Т може покретати изабране методе како се очекује. Међутим, ако желите да покренете одређену методу у класи ЈУнит, она мора бити тест примерак означен са @Тест, у супротном приказује грешку иницијализације.
Другим речима, ако изаберете методе под @Бефоре или @Афтер (било која напомена осим @Тест), тада би извршење одређене методе грешило.
# 5) Покрените ЈУнит тестове из командне линије
Као што покрећете било коју датотеку класе Јава преко командне линије, такође можете компајлирати и покренути датотеке класе ЈУнит преко командне линије.
Овде ћемо покрити доње поттеме како бисмо стекли разумевање како можемо покретати ЈУнит тестове кроз командну линију:
- Како саставити ЈУнит тест у командној линији?
- Како покренути ЈУнит тест у командној линији?
- Додатне информације о извршењу командне линије.
- Како исправити непрепознату грешку команде за јавац команду?
- Предности покретања тестова помоћу командне линије.
# 5.1) Како саставити ЈУнит тест у командној линији?
Предуслов за компајлирање и покретање датотеке класе ЈУнит путем командне линије је:
- Прво додајте релевантне ЈУнит јар датотеке у пут предавања.
- Подесите променљиве окружења онако како је поменуто у Постављање ЈУнит-а Приручник.
- Затим компајлирајте датотеку класе ЈУнит.
- Синтакса за компајлирање датотеке класе ЈУнит кроз командну линију је:
javac -cp junit-4.0.0.jar;. JUnitProgram.java
Овде је јавац Јава компајлер који користи опцију -цп.
Команда јавац -цп тражи следеће параметре:
- Датотеку ЈУнит јар прати тачка и зарез.
- Путања директоријума у којем постоји изворна датотека.
- Назив датотеке класе
У горе датој синтакси, шта тачка (.) Подразумева?
Поменули смо тачку на месту целокупне путање директоријума.
Тачка подразумева да:
- Пут предавања већ укључује тренутни директоријум Јава изворних датотека.
- ЈВМ (Јава виртуелна машина) аутоматски претпоставља да се у тренутном директоријуму налазе изворне датотеке.
- Затим ЈВМ тамо тражи поменуто име датотеке ЈУнит. Име датотеке је последњи параметар дат у наредби компајлирања.
Параметре који улазе у -цп можете проверити кроз следеће кораке:
- Отворите командну линију.
- Укуцајте јавац и притисните ЕНТЕР.
- Приказују се све релевантне опције, укључујући -цп. Открићете да -цп иде као параметар где је стаза пут до датотека класе који ЈВМ тражи.
Снимак екрана испод:
Како компајлирати више датотека одједном?
Више датотека за тестирање ЈУнит може се компајлирати одједном раздвајањем имена датотека размацима.
Доље је дат пример где компајлирате јава датотеке ЈУнитПрограм и демоТест:
javac -cp junit-4.0.0.jar;. JUnitProgram.java demoTest.java
# 5.2) Како покренути ЈУнит тест из командне линије?
Баш као што је и јавац Јава компајлер који се користи, слично јава -цп користи се за покретање датотека класе Јава укључујући класе ЈУнит.
Испод је синтакса коју бисте могли следити:
java -cp junit-4.0.0.jar;. JUnitProgram demoTest
Ова наредба извршава датотеке ЈУнитПрограм.јава и демоТест.јава једну за другом.
# 5.3) Додатне информације о „извршавању командне линије“.
најбоља бесплатна средства за чишћење регистра за Виндовс 10
Ево неких додатних информација о како исправити грешку помоћу команде јавац и зашто користити опцију покретања из командне линије
# 5.3.1) Како да поправим непрепознату грешку команде за јавац команду?
Већина нас би се сусрела са овим проблемом док је покушавала да изврши јавац наредба кроз командну линију. Ово се десило и мени; па смо мислили да то овде напишемо.
до) Ушли смо у команду јавац и притиснуо Ентер на командној линији.
б) Порука о грешци - јавац није препознат као интерна или екстерна наредба, оперативни програм или батцх датотека приказано као испод:
Ту започиње ваша компилација датотека класе Јава из командне линије. Стога је грешка заиста ствар забринутости и не може се занемарити.
Да бисте решили проблем, следите кораке у наставку и Овде је!!! видите да је грешка нестала:
- Демонстрирајмо овај процес помоћу основне Јава датотеке. Први корак који бисте могли да урадите је стварање основне Јава класе На пример. : „Калкулатор.јава“
- Пронаћи ћемо Цалцулате.јава из Виндовс Екплорера и копирати путању.
- Промените директоријум у командној линији на путању коју сте копирали (путања изворне датотеке). Користите цд за промену директоријума.
- Сада поставите ПАТХ у директоријум јдк бин помоћу команде.
СЕТ ПАТХ = и притисните ЕНТЕР.
- Овде је јдк путања Ц: Програм Филес Јава јдк1.8.0_181 бин. Стога смо пут поставили у складу с тим. Резултат не приказује ништа притиском на ЕНТЕР након команде.
- Сада проверите да ли ЈВМ препознаје наредбу јавац уношењем команде јавац и притиском на ЕНТЕР.
-
- Ако препозна команду, скуп ваљаних опција за јавац приказује се као резултат.
- Иначе ће се грешка поново приказати.
Доље је дат снимак екрана који показује да смо се успешно решили грешке.
Не покушајмо овде да избегнемо суштинско питање:
Зашто је ЈВМ препознао наредбу јавац након постављања путање до фасцикле јдк бин?
Сигурни смо да ћете и ово питање имати на уму. Дати доле је одговор.
- Фасцикла јдк бин садржи све библиотеке за наредбу јавац. Стога, зато, када сходно поставите путању, ЈВМ је сада у стању да препозна команду јавац без икаквих проблема.
- Погледајте фасцикла јавац испод јдк канте на доњој слици.
- Тада можете да покренете команду „Јава цомпиле анд рун“ помоћу командне линије. Поред тога, такође не заборавите да одговарајуће подесите променљиву ЦЛАССПАТХ. ЈАВА_ХОМЕ и ЈУНИТ_ХОМЕ променљива за Јава датотеке, односно ЈУнит датотеке.
# 5.3.2) Предност покретања тестова помоћу командне линије:
Хајде да брзо разговарамо о предности над покретањем Јава / ЈУнит тестова путем командне линије.
Као што сте већ свесни, не постоји чврсто и брзо правило о извршавању датотека класе кроз командну линију. То је само алтернативни начин како можете управљати компилацијом и извршавањем датотека класе.
Ако питате да ли постоји посебна предност у поседовању знања о извршавању ЈУнит тестова преко командне линије, тада бисмо рекли „Свакако, да“.
Разлог за „Да“ наведен је у наставку:
- Сви ови низови корака које смо пратили горе; може се додати у бележницу и претворити у батцх датотеку.
- Сада, када покренете ову батцх датотеку двоструким кликом, то би могло покренути компилацију и извршавање више ЈУнит тест датотека именованих у батцх датотеци.
Која је корист од тога што батцх датотека врши компајлирање и извршавање Јава датотека?
- Датотека батцх / јар може деловати попут корисног услужног програма који може омогућити свима који нису свесни интерне логике кода и врло лако извршити више тест случајева.
- Ово може елиминисати потребу за специјализованим програмера или КА за обављање ових послова извршавања теста. Задатак извршења може се пренети на било који ресурс, а да се не замара ограничењима вештина.
У следећој алтернативној опцији видећемо још један повољан и хвале вредан начин извршавања наших ЈУнит тест случајева.
# 6) Покрените Тест Суите користећи Теструннер Цласс
У сценаријима у реалном времену, извршавање једног по једног примерка најмање је пожељна опција.
- Имамо случајеве у којима морамо покренути групу сродних / неповезаних тест случајева.
- На пример, можда ћемо морати да креирамо и извршимо комплете за регресијски тест или пакете за тестирање дима.
Сада ћемо научити о примени различитих напомена које се користе за креирање пробних пакета и извршавање пакета.
Свеукупни поступак извршавања тест пакета помоћу Тест Руннера је према доњем току рада:
- Направите ЈУнит класе 1, ЈУнит класе 2,…. ЈУнит класа н.
- Направите датотеку класе класе Тест Суите групишући тестове.
- Направите датотеку класе Теструннер да бисте позвали креирани тест пакет.
- Извршите класу Теструннер.
Структура програма кроз које ћемо демонстрирати стварање пробног пакета и извршавање датотеке покретача приказана је на доњој слици:
Овде ћемо покрити подтеме:
- Креирање ЈУнит класа
- Стварање пробних пакета
- Стварање Теструннер датотеке и извршавање тест пакета помоћу ње.
- Додатне информације о раду напомене @РунВитх.
# 6.1) Креирање ЈУнит класа
Почнимо са стварањем две једноставне датотеке класе ЈУнит:
- ЈУнитТестЦасе1.јава - Укључује код за потврду очекиване нумеричке вредности - променљиве Вредност1 одговара стварној вредности променљиве Вредност2.
- ЈУнитТестЦасе2.јава - Укључује код за потврду да ли је очекивана променљива низа стрВалуе и стварна променљива низа стрАктуелно шибице.
То су у основи два тест случаја која ћемо покушати да уђемо у логичко груписање звано тест суите и покренемо га један за другим.
Код за ЈУнитТестЦасе1.јава
package demo.tests; import static org.junit.Assert.*; import java.util.*; import java.lang.String; import static org.testng.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import junit.framework.Assert; public class JUnitTestCase1 { public int Value1=6000; @Test public void junitMethod1(){ int Value2=9000; Assert.assertEquals(Value1, Value2); } }
Код за ЈУнитТестЦасе2.јава
package demo.tests; import static org.junit.Assert.*; import java.util.*; import java.lang.String; import static org.testng.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import junit.framework.Assert; public class JUnitTestCase2 { public String stringValue='JUnit'; @Test public void junitMethod2(){ String strActual='Junit1'; Assert.assertSame(stringValue, strActual); } }
# 6.2) Прављење тест пакета:
Овај и следећи одељак играју истакнуту улогу у целокупном процесу стварања и покретања пакета за тестирање. У овом одељку ћемо покушати да разумемо како груписати више класа ЈУнит теста и повезати их у пакет за тестирање .
Према горњој структурној слици, креирајмо пробни пакет који групише ЈУнитТестЦасе1.јава и ЈУнитТестЦасе2.јава и дамо назив скупу као ЈУнитТестСуите.јава
Две напомене које нам помажу да постигнемо стварање пробног пакета су:
- @РунВитх и
- @СуитеЦлассес
Пакети потребни за напомене:
- Мораћете да увезете пакет орг.јунит.руннер.РунВитх; за укључивање напомене @РунВитх.
- Требаће вам пакет орг.јунит.руннерс.Суите.СуитеЦлассес да би @СуитеЦлассес радио.
- Поред тога, мораћете да увезете и пакет орг.јунит.руннерс.Суите за прослеђивање параметра Суите.цласс у напомену @РунВитх.
Погледајмо код ради бољег разумевања !!
Код за ЈУнитТестСуите.јава
package demo.tests; import static org.junit.Assert.*; import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({JUnitTestCase1.class, JUnitTestCase2.class }) public class JUnitTestSuite { @BeforeClass public static void printMe() { System.out.println('JUnitTestSuite is the test suite grouping testcase 1 and testcase 2'); } }
Разумевање кода за ЈУнитТестСуите.јава:
- @РунВитх помаже ЈВМ-у да разуме какву класу тркача треба да покреће На пример. Апартман.разред или краставац.разред
- Овде је параметар @РунВитх Суите.цласс . Помаже ЈВМ-у да препозна да тренутна датотека у којој се користи @РунВитх (Суите.цласс) игра улогу у Тест Суите-у.
- Имена класе теста ЈУнит која ће бити повезана заједно у пакету морају се проследити као низ низова у облику параметара за @СуитеЦлассес одвојени зарезом.
- Ово омогућава ЈВМ-у да зна који су све тестови који треба да се групишу у пакету.
- Назив пакета биће име датотеке класе ЈУнит које је означено са @РунВитх и @СуитеЦлассес, што је у овом случају ЈУнитТестСуите.
# 6.3) Направите датотеку Тест Руннер и покрените ЈУнит Тест Суите користећи Тест Руннер
Последњи корак ће нам помоћи да покренемо тестни пакет који смо управо креирали у горњем одељку користећи Теструннер датотеку.
- Сада ћемо створити Јава датотеку названу СуитеРуннерФиле.
- Ова СуитеРуннерФиле.јава није класа ЈУнит, већ уобичајена Јава датотека у којој је главни метод.
Погледајмо код, а затим покушајмо да га разумемо.
Код за СуитеРуннерФиле.јава
package demo.tests; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class SuiteRunnerFile { public static void main(String args()) { Result result=JUnitCore.runClasses(JUnitTestSuite.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } } }
Пакети потребни за напомену
- Морате да увезете пакет орг.јунит.руннер.ЈунитЦоре да бисте укључили ЈУнитЦоре класе у коду.
- Морате да увезете пакет орг.јунит.руннер.нотифицатион.Фаилуре и орг.јунит.руннер. Резултат укључивања класе Неуспех и Резултата у код.
Разумевање кода за СуитеРуннерФиле.јава
- Да би се креирала датотека покретача за извршење тест пакета, ЈУнитЦоре час игра значајну улогу.
- Тхе рунЦлассес () метод ЈУнитЦоре класа узима назив класе пакета тестова као улазни параметар, па стога имамо израз ЈУнитЦоре. рунЦлассес (ЈУнитТестСуите. класа ).
- Тип повратка ове изјаве је Резултат објект класе који чува резултујући статус успеха и статуса неуспеха сваке датотеке тест случаја; после извршења. Због тога имамо резултат као Резултат објект класе у коду.
- Затим исписујемо грешке у тест случајевима ако их има. Попут методе гетФаилурес (), такође можете добити број грешака и Број извршавања користећи методе гетФаилуреЦоунт () и гетРунЦоунт ().
- Сада је СуитеРуннерФиле спреман за извршење,
- Изаберите датотеку из Екплорера пакета и
- Кликните десним тастером миша и изаберите Рун Ас -> Јава, програм се извршава.
Доље је дат снимак екрана прозора Конзоле.
Објашњење резултата на конзоли:
Горња конзола показује да:
- Датотека класе ЈУнитТестСуите извршена је путем СуитеРуннерФиле.
- Прво се извршава метода принтМе () под ознаком @БефореЦласс и
- Тада су се тест случајеви у скупу тестова извршавали један за другим. Тако се тест пакет може креирати и покренути као пакет.
# 6.4) Додатне информације - Како @РунВитх ради?
- @РунВитх је ЈУнит АПИ који у основи узима само један елемент као улазни параметар који је име датотеке класе тркача.
- ЈУнит фрамеворк позива наведену класу као тест руннер.
Исечак испод од РунВитх.јава ће вам помоћи да схватите:
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Inherited public @interface RunWith { Class Extends Runner> value(); }
Разумевање горњег кода интерфејса РунВитх:
- Наведено вредност елемент мора бити изведена класа Тркач класа . Овде се користи концепт рефлексије.
- Веома добар пример такве тркачке класе је већ примењен у нашем коду, тј. @РунВитх (Суите.цласс), где је група тест случајева повезана заједно да би направила пакет за тестирање.
- Слично томе, још један добар пример коришћења класе Руннер са @РунВитх могао би бити @РунВитх (Цуцумбер.цласс) који је оквир пословног развоја (БДД) за аутоматизацију тестова користећи Селениум у Јави. Ово помаже оквиру да покрене тестове засноване на краставцу.
Белешка:
- Напомене и параметри коришћени за креирање и покретање ЈУнит пакета за тестирање у овом упутству били су специфични за ЈУнит 4.
- Постоји мало другачији начин како креирате ЈУнит Тест Суите и извршите датотеку покретача у ЈУнит 5.
Ускоро ћемо усредсређено разумети све аспекте ЈУнит 4 вс ЈУнит 5 у нашим предстојећим водичима.
# 7) Покрените ЈУнит тест случајеве користећи Мавен
Такође можете имати Мавен пројекат који се састоји од ЈУнит тестова и покренути тестове кроз Мавен који ће бити обрађени у посебном упутству.
Закључак
- Сазнали смо све различите опције за покретање ЈУнит тестова - појединачне тестове, као и више њих груписане у скупове тестова.
- Добили смо додатна знања о томе како да ажурирамо преференцију за опцију Покрени, како да исправимо грешку у Јавацу и како нам извршавање командне линије може помоћи.
- Поред тога, такође смо сазнали о томе како @РунВитх напомена функционише.
Отуда, има још шта да се следи у предстојећим водичима. ‘Станд Би’ до тада !!!
=> Посетите овде да бисте научили ЈУНИТЕТ из почетка.
Препоручено читање
- ЈУнит тестови: Како написати ЈУнит тест случајеве са примерима
- Водич за ЈУнит за почетнике - шта је ЈУнит тестирање
- Шта је учвршћење ЈУнит теста: Водич за примере ЈУнит 4
- Извештавање о спектлуку: Како се генеришу извештаји о тестовима и извршавају селективни тестови
- Преузмите, инсталирајте и конфигуришите ЈУнит у програму Ецлипсе
- Увод у ЈУнит Фрамеворк и његову употребу у скрипту Селениум - Водич за селен # 11
- Направите тестове Аппиум за апликацију за Андроид
- Уметните више докумената у МонгоДБ помоћу низова