Rašymo vienetų testai „Python“: kaip pradėti?

Baigiau savo pirmąjį teisingą projektą Pythone, o dabar mano užduotis - užrašyti bandymus.

Kadangi tai yra pirmas kartas, kai padariau projektą, tai pirmas kartas, kai jį užrašysiu.

Kyla klausimas, kaip pradėti? Aš neturiu idėjos. Ar kas nors gali nukreipti mane į tam tikrą dokumentaciją / pamoką / nuorodą / knygą, kurią galiu naudoti norint pradėti rašyti testus (ir, manau, visų pirma, testavimo modulius)

Bet kokie patarimai būtų sveikintini šia tema.

507
30 июля '10 в 15:10 2010-07-30 15:10 user225312 nustatytas liepos 30 d. 10 val. 15:10 2010-07-30 15:10
@ 8 atsakymai

Tai pamoka, skirta Python testų kūrimui . Dabar, kaip sakė Justin, geriau užrašyti savo bandymus prieš kodavimą arba kodavimo metu, ir kaip ši pamoka prielaida, kad dirbate, bet vis tiek manau, kad tai naudinga.

Ir čia yra 2 dalis .

232
30 июля '10 в 15:15 2010-07-30 15:15 atsakymą pateikė „ Skilldrick“ liepos 30 d. 10 val. 15:15 2010-07-30 15:15

Jei esate naujas vieneto testams, paprasčiausias mokymosi metodas dažnai yra geriausias. Remdamiesi tuo, aš rekomenduoju naudoti py.test o ne nepakeistą modulį .

Apsvarstykite šiuos du pavyzdžius, kurie daro tą patį:

1 pavyzdys (unittest):

 def test_starting_out(): assert 1 == 1 

Darant prielaidą, kad abu failai vadinami test_unittesting.py , kaip atlikti bandymus?

1 pavyzdys (unittest):

 cd /path/to/dir/ py.test 
93
30 июля '10 в 15:23 2010-07-30 15:23 Tim McNamara atsakymas liepos 30 d. 10 val. 15:23 2010-07-30 15:23

Nemokamai „Python Dive Into Python“ knygoje yra skyrius apie vieneto testavimą , kurį galite rasti naudingiau.

Jei laikotės šiuolaikinių metodų, tikriausiai rašydami projektą turėtumėte rašyti testus, o ne laukti, kol jūsų projektas bus beveik baigtas.

Šiek tiek vėlai, bet dabar jūs žinote, kitą kartą. :)

70
30 июля '10 в 15:14 2010-07-30 15:14 Mark Byers atsakymas liepos 30 d., 10 d. 15:14 2010-07-30 15:14

Mano nuomone, yra trys puikios python testavimo sistemos, kurias galima išbandyti.
unittest - modulis turi standartinius python paskirstymus
nosis - gali atlikti nepalankiausius testus ir turėti mažiau modelių.
„pytest“ - taip pat atlieka nepriekaištingus testus, turi mažiau šablonų, geresnės ataskaitos, daug puikių papildomų funkcijų.

Norėdami gauti gerą visų jų palyginimą, perskaitykite kiekvieno iš jų įvadą adresu http://pythontesting.net/start-here .
Taip pat yra išplėsti straipsniai apie lempas ir dar daugiau.

34
05 нояб. atsakymas duotas „ Okken 05 Nov. 2013-11-05 09:55 '13, 9:55, 2013-11-05 09:55

Neužbaigti dokumentai bus gera pradžia.

Be to, tai šiek tiek vėluoja dabar, bet ateityje apsvarstykite galimybę rašyti vieneto testus prieš pat projektą arba jo metu. Taigi jūs galite juos naudoti bandymui, kai jūs einate į priekį, ir (teoriškai) galite juos naudoti kaip regresijos testus, kad įsitikintumėte, jog jūsų kodo pakeitimai nepažeidžia esamo kodo. Tai suteiks jums visapusišką naudą, kai rašysite testinius atvejus :)

33
30 июля '10 в 15:13 2010-07-30 15:13 atsakymą Justinas Ethieras davė liepos 10 d. 15 val. 15:13 2010-07-30 15:13

unittest ateina su standartine biblioteka, bet aš jums rekomenduočiau.

„nosis plečiasi, kad būtų lengviau atlikti bandymus“.

Aš taip pat rekomenduojame jums parašyti

„analizuoja Python kodą, kuriame ieškoma klaidų ir prastos kokybės ženklų.

27
30 июля '10 в 16:27 2010-07-30 16:27 atsakymas pateiktas pasenusiu liepos 30 d., 10 val. 16:27 2010-07-30 16:27

Kaip kiti jau atsakė, jau per vėlu rašyti vieneto testus, bet ne per vėlai. Kyla klausimas , ar jūsų kodas bando, ar ne. Iš tiesų, egzistuojančio kodo testavimas nėra lengvas, net ir apie tai yra knyga: efektyvus darbas su pasenusiu kodu (žr. Pagrindiniai punktai arba pirmtakas PDF ).

Dabar skambinate vieneto testais arba ne. Jums tereikia žinoti, kad tai gali būti varginantis uždavinys. Tai galite padaryti, kad galėtumėte valdyti vieneto testavimą arba pirmiausia apsvarstyti priėmimo testus, taip pat pradėti rašyti vieneto testus, kai pakeisite kodą arba pridėsite naują funkciją į projektą.

8
30 июля '10 в 15:31 2010-07-30 15:31 atsakymas suteiktas filantui liepos 30 d., 10 val. 15:31 2010-07-30 15:31

nosetests yra puikus testavimo tirpalas pythone. Jis palaiko ir nepalankiausius testus bei doktrinas ir leidžia jums pradėti paprastą, paprastą konfigūracijos failą.

3
30 июля '10 в 16:07 2010-07-30 16:07 Atsakymas duotas Danieliui Kluevui liepos 30, 10 d. 16:07 2010-07-30 16:07

Peržiūrėkite kitus klausimus apie „ etikečių arba „ Klauskite klausimą“