Codificare, acoperire cu coduri

Acoperirea codului

La un moment dat, veți dori să știți ce părți ale aplicației sunt acoperite cu teste și care nu sunt.
Asta folosit CodeCoverage. În timpul execuției de testare pentru colectarea datelor de acoperire, veți obține statistici pentru toate clasele, metode și linii de cod care sunt afectate de testele.






Diferența dintre numărul de linii de cod și numărul de rânduri afectate în timpul testării este principalul criteriu pentru acoperirea codului cu teste. Într-o lume ideală, acoperirea codului ar trebui să fie 100%, însă în realitate 80% este suficient. Cu toate acestea, chiar și o acoperire de cod 100% nu vă protejează de erori și de căderea aplicației.

Codificarea include instrumentele CodeCoverage de la versiunea 1.5. Xdebug este obligat să colecteze informații despre acoperirea testelor.

Codificare, acoperire cu coduri

Datele de acoperire a testelor pot fi colectate manual pentru teste locale sau la distanță. Testele la distanță pot fi efectuate pe un alt nod,
sau local, dar folosind un server web. S-ar putea părea dificil să obțineți acoperire de cod pentru testele Selenium sau PhpBrowser. Cu toate acestea, Codeception
sprijină acoperirea de la distanță în același mod ca și la nivel local.

configurație

Pentru a activa utilitarul de acoperire a testelor, adăugați următoarele linii la fișierul global de configurare codeception.yml:

arata bine. Dar ce fișiere ar trebui incluse în raportul de acoperire? Puteți filtra fișiere utilizând liste negre și liste albe.

Ce sunt foile negre și listele albe?

  • Lista albă este lista de fișiere care ar trebui incluse în raport, chiar dacă acestea nu sunt afectate.
  • Lista cu lista neagră este o listă de fișiere care ar trebui să fie excluse din raport, chiar dacă acestea sunt afectate.

Treceți matricea de fișiere / directoare în secțiunea include / excludeți. Calea care se termină în '' se referă la director.
De asemenea, puteți utiliza masca "în nume de fișiere, de exemplu app / models / * Model.php pentru a specifica toate modelele.







Iată un exemplu dacă nu aveți nevoie de filtre complexe:

Opțiunile de includere și excludere aici adaugă sau elimină fișiere din lista albă.

Fiecare dintre aceste setări poate fi înlocuită pentru fiecare set din fișierele de configurare corespunzătoare.

Testarea locală a testelor

Un raport de acoperire de bază poate fi obținut pentru testele funcționale și unitare.
Dacă ați configurat configurația așa cum este prezentat mai sus, sunteți gata de acțiune.
Tot ce aveți nevoie este o codificare cu opțiunea de acoperire.
Pentru a genera un raport xml sau un raport frumos html, adăugați opțiunile -xml și -html.

Rapoartele XML și HTML sunt localizate în directorul _logs. Cea mai bună modalitate de a vizualiza raportul este să deschideți index.html din browserul dvs. în directorul teste / _log / acoperire.
Rapoartele XML sunt utilizate în IDE (cum ar fi PHPStorm) sau servere de integrare continuă (cum ar fi Jenkins).

Testarea la distanță a testelor

In cazul in care esoi cererea dumneavoastră se execută cu ajutorul unui server web (Apache, Nginx, PHP WebServer) nu aveți acces la codul de testare,
colectarea datelor despre acoperirea codului devine o sarcină non-trivială. Același lucru este scriptul care rulează pe un alt nod.
Pentru a accesa codul, trebuie să aveți extensia xdebug cu opțiunea remote_enable activată.
De asemenea, codificarea necesită un mic "spion" pentru a interacționa cu aplicația dvs.
Chiar dacă aplicația se execută în mod autonom, chiar fără să știe că acesta a fost testat, fișierul trebuie să fie conectat pentru a face posibilă colectarea de informații cu privire la suprafața de încercare.

Acest fișier este numit c3.php și este disponibil pe GitHub.
c3.php ar trebui să fie descărcat și inclus în aplicația dvs. în prima linie a lui de la controlor.
Trimiterea antetelor speciale Codeception va oferi comenzi aplicației dvs., permițându-vă să executați colectarea datelor de acoperire a codului și să o opriți.
După ce executați suita de testare, raportul este salvat și Codeception îl consideră de la aplicația dvs.

Urmați instrucțiunile de instalare din fișierul readme.

Nu a fost niciodată ușor de instalat o generație de rapoarte de acoperire a codurilor la distanță, cu teste. În orice alt cadru. Serios.

Cu toate acestea, dacă rulați testele de pe un server de la distanță (sau serverul web nu utilizează codul în directorul curent), într-un fișier de configurare, trebuie să adăugați opțiunea de la distanță.
De exemplu, permiteți instrumentului la distanță colectarea informațiilor privind acoperirea codului în setul de acceptare.suite.iml

În acest caz, rezultatele rapoartelor nu vor fi fuzionate cu cele locale, dacă opțiunea este activată.
Consolidarea rapoartelor este posibilă numai dacă fișierul este lansat de la distanță și local are o cale.
Cu toate acestea, dacă executați teste pe un server la distanță, nu există nicio certitudine că acest lucru este valabil.

concluzie

Nu a fost niciodată atât de ușor să configurați un raport de acoperire la nivel local și de la distanță, în același timp. Doar un fișier de configurare și un fișier suplimentar incluse în aplicație!
Cu Codeception, puteți crea doar rapoarte CodeCoverage pentru testele dvs. de seleniu (sau alte teste de acceptare și API). Conectați rapoartele pentru acceptare. funcțional. și seturile de unități, puteți obține cele mai complete informații despre ce părți ale aplicației dvs. sunt testate și care nu sunt.

Am găsit o greșeală, o greșeală, o curbă și o traducere plictisitoare. Ajutați-l să repare acest lucru!







Trimiteți-le prietenilor: