multiple ways execute junit tests
Acest tutorial prezintă mai multe moduri de executare a testelor JUnit, cum ar fi Rularea ca test JUnit, Utilizarea tastelor de comandă rapidă sau Executarea testului JUnit de pe linia de comandă etc.
Am văzut cum să scriem cazurile de test JUnit de bază și cum să avem o abordare a dispozitivelor de testare ca una dintre practicile bune de programare pentru JUnit în tutorialul nostru anterior.
În acest tutorial, să aruncăm o privire asupra diferitelor moduri pe care le putem folosi pentru a executa teste pentru JUnit. Veți fi surprins să vedeți numărul de opțiuni disponibile pentru a rula aceste cazuri de testare.
=> Fii atent la seria de antrenament JUnit simplă aici.
Ce veți învăța:
- Moduri diferite de a executa teste JUnit
- # 1) Rulați ca test JUnit
- # 2) Rulați ultimul test JUnit executat prin opțiunea de meniu
- # 3) Rulați folosind tastele de comandă rapidă
- # 4) Rulați o singură metodă de testare într-o clasă
- # 5) Rulați testele JUnit din linia de comandă
- # 6) Rulați Test Suite folosind Testrunner Class
- # 7) Rulați JUnit Test Cases folosind Maven
- Concluzie
- Lectură recomandată
Moduri diferite de a executa teste JUnit
Pentru a executa testele JUnit, există anumite moduri în care puteți rula un fișier de clasă cu una sau mai multe metode de testare prin următoarele opțiuni:
- Opțiunea „Rulați ca test JUnit”.
- Rulați ultimul test JUnit executat prin opțiunea de meniu.
- Rulați folosind tastele de comandă rapidă.
- Rulați o singură metodă de testare într-o clasă.
- Rulați prin linia de comandă.
- Rulați folosind fișierul clasei Testrunner.
- Rulați folosind și Maven.
Notă: Execuția testului JUnit prin Maven va fi contemplată într-un tutorial separat pentru JUnit Maven.
Reiterând punctul, în acest tutorial, vom afla cum mai multe teste pot fi grupate într-o suită de teste și cum s-ar putea rula suita în moduri diferite. În plus, va detalia anumite informații suplimentare relevante și conexe.
# 1) Rulați ca test JUnit
Cel mai simplu mod în care puteți executa testele JUnit este:
Metoda 1:
- Faceți clic dreapta pe fișierul clasei din vizualizarea Script
- Selectați Rulați ca -> Test JUnit
- Fișierul clasei se execută.
Metoda 2:
- În mod similar, puteți selecta fișierul clasei din vizualizarea Package Explorer
- Faceți clic dreapta pe fișier
- Selectați Rulați ca -> Test JUnit
- Fișierul clasei se execută.
Notă: În acest fel puteți executa un fișier de clasă la un moment dat.
# 2) Rulați ultimul test JUnit executat prin opțiunea de meniu
Puteți rula un fișier de clasă JUnit păstrând un fișier de clasă deschis în editor. Accesați meniul de sus al fișierului Eclipsa => Selectați Run => Run . Optiunea Run -> Run practic înseamnă a relua testul pe care l-ai susținut ultima dată.
Să luăm în considerare o clasă JUnit cu mai multe metode / teste pentru o mai bună claritate a modului în care Run-> Run lucrări:
- Scenariul 1 : Dacă ai fi rulat un metodă unică cu @Test, apoi când faceți clic Run-> Run , singura metodă care a rulat ultima va rula doar de data aceasta și nu întreaga clasă JUnit.
- Scenariul 2 :În timp ce ai fi condus întreaga clasă anterior, Run-> Run ar relua întregul fișier de clasă.
Acum că știm Run-> Run rulează testul pe care l-ați efectuat ultima dată, acest lucru ne aduce la un întrebare dacă puteți schimba preferința opțiunii Run-> Run?
Răspunsul la întrebare este Da, preferința opțiunii Run-> Run poate fi modificată. Există o anumită configurație atașată la Run-> Run.
Iată cum puteți face asta:
la) Setarea de rulare a Eclipse este practic implicită rulați resursa selectată sau editorul activ dacă este lansabil .
Deci, ce înseamnă setarea implicită - „Rulați resursa selectată sau editorul activ dacă se poate lansa” nu?
Răspunsul la acest lucru este că nu va executa ultima aplicație pe care ați lansat-o, ci mai degrabă va urma reluarea ultimei aplicații lansate pentru editorul activ .
b) Atunci cum modificați preferința implicită?
Răspunsul la acest lucru este că puteți modifica preferința implicită în Eclipse pentru a rula ultima aplicație pe care ați lansat-o indiferent de editorul activ tu ai.
Mai jos este modul în care modificați preferința opțiunii Run utilizând Run -> Run:
- Navigheaza catre Windows => Preferințe => Executare / Depanare => Lansare
- „Lansarea operației” are un buton radio implicit - ' Lansați aplicația lansată anterior ” selectat sub a doua opțiune „ Lansați resursa selectată sau editorul activ. Dacă nu este lansabil : ’.
- Este posibil să trebuiască să schimbați această preferință la primul buton radio, adică ' Lansați întotdeauna aplicația lansată anterior ”.
# 3) Rulați folosind tastele de comandă rapidă
Puteți selecta fișierul de clasă din vizualizarea Script sau din Vizualizarea pachetului și puteți utiliza tastele rapide de mai jos pentru a executa testele JUnit:
- Apăsați tastele ALT + SHIFT + X, T pentru a executa fișierul clasei JUnit.
- O alternativă la aceasta ar fi presa ALT + R apoi CTRL + F11 pentru a executa un fișier de clasă JUnit. ALT + R apoi CTRL + F11 este comanda rapidă pentru opțiunea de meniu Run -> Run
# 4) Rulați o singură metodă de testare într-o clasă
Uneori, poate doriți să rulați o singură metodă de testare JUnit.
În cazul în care există mai multe metode în fișierul clasei JUnit:
- Puteți selecta sau plasa cursorul pe numele metodei în vizualizarea script.
- Utilizați fie tastele de comenzi rapide menționate mai sus, fie opțiunile furnizate mai sus pentru a executa doar metoda pe care tocmai ați selectat-o.
Notă: ALT + SHIFT + X, T poate rula metodele selectate conform așteptărilor. Cu toate acestea, dacă doriți să rulați o metodă specifică într-o clasă JUnit, trebuie să fie o probă adnotată cu @Test, altfel arată eroare de inițializare.
Cu alte cuvinte, dacă selectați metode sub @Before sau @After (orice adnotare în afară de @Test), atunci execuția metodei specifice ar erora.
# 5) Rulați testele JUnit din linia de comandă
La fel cum rulați orice fișiere de clasă Java prin linia de comandă, puteți compila și rula fișiere de clasă JUnit prin linia de comandă.
Vom acoperi aici sub-subiectele de mai jos pentru a înțelege cum putem rula testele JUnit prin linia de comandă:
- Cum să compilați un test JUnit în linia de comandă?
- Cum se execută un test JUnit în linia de comandă?
- Informații suplimentare despre executarea liniei de comandă.
- Cum se remediază eroarea de comandă nerecunoscută pentru comanda javac?
- Avantajele efectuării testelor folosind linia de comandă.
# 5.1) Cum să compilezi un test JUnit în linia de comandă?
Condiția prealabilă pentru compilarea și rularea unui fișier de clasă JUnit prin promptul de comandă este:
- Mai întâi adăugați fișiere jar JUnit relevante în calea de clasă.
- Setați variabilele de mediu așa cum a fost menționat în SetUp de JUnit tutorial.
- Apoi compilați un fișier de clasă JUnit.
- Sintaxa pentru compilarea unui fișier de clasă JUnit prin linia de comandă este:
javac -cp junit-4.0.0.jar;. JUnitProgram.java
Aici, javac este compilatorul Java care folosește opțiunea -cp.
Comanda javac -cp caută următorii parametri:
- Fișierul jar JUnit este urmat de un punct și virgulă.
- Calea directorului în care există fișierul sursă.
- Numele fișierului clasei
În sintaxa dată mai sus, ce înseamnă punctul (.)?
Am menționat un punct în locul întregii căi a directorului.
Punctul implică faptul că:
- Classpath include deja directorul curent pentru fișierele sursă Java.
- JVM (Java Virtual Machine) presupune automat că directorul curent este locul unde sunt plasate fișierele sursă.
- JVM caută apoi numele fișierului JUnit menționat acolo. Numele fișierului este ultimul parametru dat în comanda de compilare.
Puteți verifica parametrii care intră în -cp prin următorii pași:
- Deschideți promptul de comandă.
- Tastați javac și apăsați ENTER.
- Toate opțiunile relevante apar, inclusiv -cp. Veți găsi că -cp merge ca un parametru în care calea este calea fișierelor de clasă căutate de JVM.
Captură de ecran de mai jos:
Cum să compilați mai multe fișiere simultan?
Mai multe fișiere de test JUnit pot fi compilate simultan separând numele fișierelor cu spații.
Dat mai jos este un exemplu de unde compilați fișierele java JUnitProgram și demoTest:
javac -cp junit-4.0.0.jar;. JUnitProgram.java demoTest.java
# 5.2) Cum se execută un test JUnit din linia de comandă?
La fel ca javac este compilatorul Java utilizat, în mod similar java -cp este folosit pentru a rula fișierele clasei Java, inclusiv clasele JUnit.
Mai jos este sintaxa pe care ați putea să o urmați:
java -cp junit-4.0.0.jar;. JUnitProgram demoTest
Această comandă execută atât fișierele JUnitProgram.java, cât și demoTest.java unul după altul.
# 5.3) Informații suplimentare despre „executarea liniei de comandă”.
cel mai bun software de clonare a discurilor Windows 10
Iată câteva informații suplimentare despre cum să remediați o eroare cu comanda javac și de ce folosiți opțiunea de rulare pe linia de comandă
# 5.3.1) Cum remediez eroarea de comandă nerecunoscută pentru comanda javac?
Majoritatea dintre noi ar întâmpina această problemă în timp ce încerca să execute javac comanda prin linia de comandă. Acest lucru mi s-a întâmplat și mie; așa că ne-am gândit să-l scriem aici.
la) Am intrat în comandă javac și apăsat introduce pe promptul de comandă.
b) Mesajul de eroare - javac nu este recunoscut ca o comandă internă sau externă, un program operabil sau un fișier batch a apărut după cum urmează:
Aici începe compilarea fișierelor clasei Java din linia de comandă. Prin urmare, eroarea este într-adevăr o problemă de îngrijorare și nu poate fi ignorată.
Pentru a remedia problema, urmați pașii de mai jos și Aici este!!! vezi că eroarea a dispărut:
- Să demonstrăm acest proces folosind un fișier Java de bază. Primul pas pe care îl puteți face este să creați o clasă Java de bază De exemplu. : „Calculator.java”
- Vom localiza Calculate.java din Windows Explorer și vom copia calea.
- Schimbați directorul din promptul de comandă pe calea pe care ați copiat-o (calea fișierului sursă). Folosiți cd pentru a schimba directorul.
- Acum setați PATH la folderul jdk bin folosind comanda.
SET PATH = și apăsați ENTER.
- Aici, calea jdk este C: Program Files Java jdk1.8.0_181 bin. Prin urmare, am stabilit calea în consecință. Rezultatul nu arată nimic la apăsarea ENTER după comandă.
- Acum, verificați dacă JVM recunoaște comanda javac introducând comanda javac și apăsând ENTER.
-
- Dacă recunoaște comanda, atunci un set de opțiuni valide pentru javac se afișează ca rezultat.
- Altfel, eroarea va apărea din nou.
Mai jos este o captură de ecran care arată că am scăpat cu succes de eroare.
Să nu încercăm să evităm o întrebare esențială aici:
De ce a recunoscut JVM comanda javac după ce a setat calea către folderul jdk bin?
Suntem siguri că veți avea și această întrebare în minte. Dat mai jos este răspunsul.
- Dosarul jdk bin conține toate bibliotecile pentru comanda javac. Prin urmare, acesta este motivul pentru care, atunci când setați calea în consecință, JVM este acum capabilă să recunoască comanda javac fără nicio problemă.
- A se vedea dosar javac sub coșul jdk din imaginea de mai jos.
- Apoi, puteți rula comanda „Java compile and run” utilizând linia de comandă. În plus, nu uitați să setați variabila CLASSPATH în mod corespunzător. Variabile JAVA_HOME și JUNIT_HOME pentru fișiere Java și respectiv fișiere JUnit.
# 5.3.2) Avantajul efectuării testelor folosind linia de comandă:
Să discutăm rapid, avantajul față de rularea testelor Java / JUnit prin linia de comandă.
După cum știți deja, nu există o regulă dură și rapidă cu privire la executarea fișierelor de clasă prin linia de comandă. Este doar o modalitate alternativă, despre cum puteți gestiona compilarea și execuția fișierelor de clasă.
Dacă întrebați dacă există un avantaj special în a avea cunoștințe în ceea ce privește executarea testelor JUnit prin linia de comandă, atunci vom spune „Cu siguranță, da”.
Motivul „Da” este prezentat mai jos:
- Toate aceste serii de pași pe care i-am urmat mai sus; ar putea fi adăugat în notepad și convertit într-un fișier batch.
- Acum, când rulați acest fișier batch cu un dublu clic, acesta poate declanșa compilarea și executarea mai multor fișiere de test JUnit numite în fișierul batch.
Care este avantajul de a avea un fișier batch la compilarea și executarea fișierelor Java?
- Un fișier lot / jar ar putea acționa ca un utilitar ușor de utilizat, care ar putea permite oricui nu știe de logica internă a codului și poate executa foarte ușor mai multe cazuri de testare.
- Acest lucru poate elimina necesitatea de a avea un dezvoltator specializat sau QA pentru a efectua aceste lucrări de execuție de testare. Sarcina de execuție poate fi delegată oricărei resurse fără a se deranja de constrângerile de calificare.
În următoarea opțiune alternativă, vom vedea un alt mod avantajos și lăudabil de a executa cazurile noastre de testare JUnit.
# 6) Rulați Test Suite folosind Testrunner Class
În scenariile în timp real, executarea unei probe la rând este opțiunea cel mai puțin preferată.
- Avem cazuri în care trebuie să rulăm un grup de cazuri de testare conexe / fără legătură.
- De exemplu, ar putea fi nevoie să creăm și să executăm suite de testare de regresie sau suite de testare a fumului.
Vom afla acum despre implementarea diferitelor adnotări utilizate pentru crearea suitelor de testare și executarea suitei.
Procesul general de executare a suitei de testare utilizând Test Runner este conform fluxului de lucru de mai jos:
- Creați clasa JUnit 1, clasa JUnit 2,…. JUnitatea clasa n.
- Creați fișierul clasei suitei de testare care grupează cazurile de testare.
- Creați un fișier de clasă Testrunner pentru a invoca suita de testare creată.
- Executați clasa Testrunner.
Structura programelor prin care vom demonstra crearea suitei de testare și execuția fișierului runner este prezentată în imaginea de mai jos:
Aici, vom acoperi sub-subiectele:
- Crearea claselor JUnit
- Crearea de suite de testare
- Crearea unui fișier Testrunner și executarea suitelor de testare folosindu-l.
- Informații suplimentare despre funcționarea adnotării @RunWith.
# 6.1) Crearea claselor JUnit
Să începem prin a crea două fișiere simple de clasă JUnit:
- JUnitTestCase1.java - Include codul pentru a verifica o valoare numerică așteptată - variabila Valoare1 se potrivește cu o valoare reală a variabilei Valoare2.
- JUnitTestCase2.java - Include codul pentru a verifica dacă variabila șir așteptată strValue și variabila șir reală strActual chibrituri.
Acestea sunt practic două cazuri de test pe care le vom încerca să intrăm într-o grupare logică numită suită de testare și să o facem să ruleze una după alta.
Cod pentru JUnitTestCase1.java
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); } }
Cod pentru JUnitTestCase2.java
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) Crearea Test Suite:
Această secțiune și următoarea secțiune joacă un rol proeminent în întregul proces de creare și rulare a unei suite de testare. În această secțiune, vom încerca să înțelegem cum să grupați mai multe clase de test JUnit și să le legați într-o suită de teste .
Conform imaginii structurale de mai sus, să creăm o suită de teste care grupează JUnitTestCase1.java și JUnitTestCase2.java și denumim suita ca JUnitTestSuite.java
Cele două adnotări care ne ajută să realizăm crearea unei suite de testare sunt:
- @RunWith și
- @SuiteClasses
Pachete necesare adnotărilor:
- Va trebui să importați pachetul org.junit.runner.RunWith; pentru includerea adnotării @RunWith.
- Veți avea nevoie de pachetul org.junit.runners.Suite.SuiteClasses pentru ca @SuiteClasses să funcționeze.
- În plus, va trebui să importați și pachetul org.junit.runners.Suite pentru trecerea unui parametru Suite.class în adnotarea @RunWith.
Să analizăm codul pentru o mai bună înțelegere !!
Cod pentru JUnitTestSuite.java
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'); } }
Înțelegerea codului pentru JUnitTestSuite.java:
- @RunWith ajută JVM să înțeleagă ce fel de clasă de alergători ar trebui să ruleze De exemplu. Suite.class sau Castravete.class
- Aici, parametrul @RunWith este Suite.class . Ajută JVM să recunoască faptul că fișierul curent în care este utilizat @RunWith (Suite.class) joacă un rol în Test Suite.
- Numele claselor de test JUnit care urmează să fie legate împreună într-o suită trebuie să fie transmise ca o matrice de șiruri sub formă de parametri pentru @SuiteClasses, fiecare separat printr-o virgulă.
- Acest lucru permite JVM să știe care sunt toate probele care trebuie grupate sub suită.
- Numele suitei va fi numele fișierului clasei JUnit care este adnotat cu @RunWith și @SuiteClasses, care este JUnitTestSuite în acest caz.
# 6.3) Creați fișierul Test Runner și rulați suita JUnit Test utilizând Test Runner
Ultimul pas ne va ajuta să rulăm suita de testare pe care tocmai am creat-o în secțiunea de mai sus folosind un fișier Testrunner.
- Vom crea acum un fișier Java numit SuiteRunnerFile.
- Acest SuiteRunnerFile.java nu este o clasă JUnit, ci un fișier Java obișnuit, cu metoda principală.
Să analizăm codul și apoi să încercăm să îl înțelegem.
Cod pentru SuiteRunnerFile.java
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()); } } }
Pachete necesare adnotării
- Trebuie să importați pachetul org.junit.runner.JunitCore pentru a include fișierul JUnitCore clasă în cod.
- Trebuie să importați pachetul org.junit.runner.notification.Failure și org.junit.runner. Rezultat pentru a include clasa Eșec și Rezultat în cod, respectiv.
Înțelegerea Codului pentru SuiteRunnerFile.java
- Pentru a crea un fișier runner pentru executarea suitei de testare, fișierul JUnitCore clasa joacă un rol semnificativ.
- runClasses () Metodă de JUnitCore class ia numele suitei de testare ca parametru de intrare, de aceea avem declarația JUnitCore. runClasses (JUnitTestSuite. clasă ).
- Tipul de returnare al acestei declarații este Rezultat obiect de clasă care stochează starea de succes rezultată și starea de eșec a fiecărui dosar de caz de testare; postexecutare. Acesta este motivul pentru care avem un rezultat dupa cum Rezultat obiect de clasă din cod.
- Apoi imprimăm eșecurile cazurilor de test, dacă există. La fel ca metoda getFailures (), puteți obține, de asemenea, numărul de eșecuri și numărul de rulare folosind metoda getFailureCount () și respectiv getRunCount ().
- Acum SuiteRunnerFile este gata de executare,
- Selectați fișierul din Package Explorer și
- Faceți clic dreapta și selectați Run As -> Java, programul se execută.
Mai jos este captura de ecran a ferestrei Consolei.
Explicația rezultatelor pe consolă:
Consola de mai sus arată că:
- Fișierul clasei JUnitTestSuite a fost executat prin SuiteRunnerFile.
- Metoda printMe () sub adnotare @BeforeClass a fost executată mai întâi și
- Apoi, cazurile de testare din suita de testare s-au executat unul după altul. Acesta este modul în care suita de testare poate fi creată și rulată ca pachet.
# 6.4) Informații suplimentare - Cum funcționează @RunWith?
- @RunWith este un API JUnit care ia practic un singur element ca parametru de intrare, care este un nume de fișier de clasă runner.
- Cadrul JUnit invocă clasa specificată ca test runner.
Fragmentul de mai jos din RunWith.java vă va ajuta să înțelegeți:
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Inherited public @interface RunWith { Class Extends Runner> value(); }
Înțelegerea codului de interfață RunWith de mai sus:
- Specificat valoare elementul trebuie să fie o clasă derivată a Alergător clasă . Conceptul de reflecție este folosit aici.
- Un exemplu foarte bun al unei astfel de clase de alergători este deja implementat în codul nostru, adică @RunWith (Suite.class), unde un grup de probe este legat împreună pentru a face o suită de testare.
- În mod similar, un alt exemplu bun de utilizare a unei clase Runner cu @RunWith ar putea fi @RunWith (Cucumber.class), care este un cadru de dezvoltare bazat pe afaceri (BDD) pentru automatizarea testelor folosind Selenium în Java. Acest lucru ajută cadrul să ruleze cazurile de test pe bază de Castravete.
Notă:
- Adnotările și parametrii utilizați pentru a crea și rula suita de testare JUnit în acest tutorial au fost specifice JUnit 4.
- Există un mod ușor diferit de a crea un JUnit Test Suite și de a executa fișierul runner în JUnit 5.
Vom avea o înțelegere concentrată a tuturor aspectelor JUnit 4 vs JUnit 5 în curând în tutorialele noastre viitoare.
# 7) Rulați JUnit Test Cases folosind Maven
Puteți avea, de asemenea, un proiect Maven format din teste JUnit și puteți rula testele prin Maven, care vor fi acoperite într-un tutorial separat.
Concluzie
- Am învățat toate opțiunile diferite pentru desfășurarea testelor JUnit - teste unice, precum și mai multe teste grupate în suite de testare.
- Avem cunoștințe suplimentare despre cum să actualizăm preferința pentru opțiunea Run, cum să remediem eroarea javac și cum ne-ar putea ajuta executarea liniei de comandă.
- În plus, am aflat și despre cum funcționează adnotarea @RunWith.
Prin urmare, există mai multe de urmat în viitoarele tutoriale. ‘Stand By’ până atunci !!!
=> Vizitați aici pentru a afla JUnit From Scratch.
Lectură recomandată
- Teste JUnit: Cum se scriu cazuri de testare JUnit cu exemple
- JUnit Tutorial pentru începători - Ce este testarea JUnit
- Ce este un dispozitiv de testare JUnit: Tutorial cu exemple JUnit 4
- Raportare Specflow: Cum se generează rapoarte de testare și se execută teste selective
- Descărcați, instalați și configurați JUnit în Eclipse
- Introducere în JUnit Framework și utilizarea sa în Selenium Script - Selenium Tutorial # 11
- Creați teste Appium pentru o aplicație Android
- Introduceți mai multe documente în MongoDB folosind matrici