crpcut (tariama "šūdas cut") yra compartmented Tvirta POSIX C ++ vienetai testeriai. Su crpcut tai lengva rašyti testus, kitų vienetų bandymo sistemos negali valdyti.
Įvadinė pavyzdys:
Pavyzdžiui, bandymas dalys std :: string:
& Nbsp; #include
& Nbsp; #include
& Nbsp; konstrukto apastr // rungtynių už mosts bandymų
& Nbsp; {
& Nbsp; apastr (): S ("apa") {}
& Nbsp; std :: string s;
& Nbsp;};
& nbsp; TestSuite (pagrindai)
& Nbsp; {
& Nbsp; BANDYMAS (default_constr_and_destr)
& Nbsp; {
& Nbsp; std :: string s;
& Nbsp; ASSERT_TRUE (s.empty ());
& Nbsp; ASSERT_EQ (s.length (), 0);
& Nbsp;}
& Nbsp; BANDYMAS (constr_from_char_array, apastr,
& Nbsp; DEPENDS_ON (default_constr_and_destr))
& Nbsp; {
& Nbsp; ASSERT_EQ (s.length (), 3UL);
& Nbsp;}
& Nbsp; BANDYMAS (ne, apastr,
& Nbsp; DEPENDS_ON (default_constr_and_destr))
& Nbsp; {
& Nbsp; ASSERT_EQ (s.at (1), "p");
& Nbsp;}
& Nbsp;}
& nbsp; TestSuite (klaidos, DEPENDS_ON (ALL_TESTS (pagrindai)))
& Nbsp; {
& Nbsp; BANDYMAS (at_out_of_range, apastr,
& Nbsp; EXPECT_EXCEPTION (std :: out_of_range))
& Nbsp; {
& Nbsp; s.at (4);
& Nbsp;}
& Nbsp; BANDYMAS (index_oper_out_of_range, apastr,
& Nbsp; EXPECT_SIGNAL_DEATH (SIGABRT)
& Nbsp; NO_CORE_FILE)
& Nbsp; {
& Nbsp; s [4];
& Nbsp;}
& Nbsp;}
& Nbsp; int main (int argc, char * argv [])
& Nbsp; {
& Nbsp; sugrįžti crpcut :: test_case_factory :: run_test (argc, argv);
& Nbsp;}
Panašūs tyrimai nauda gražu suskirstyti į bandymų-apartamentai. Bandymo apartamentai gali priklausyti nuo kitų bandymų suites, o tai reiškia, kad ribotas bandymai paleisti tik jei visi testai tai priklauso nuo sėkmingai baigė. Rezultatai gali būti patvirtintas naudojant teigti makrokomandas skaičių. Bandymai gali naudoti armatūra išreikšti bendrus turinį. Bandymai gali būti tikimasi, kad išėjimo, išskyrus arba mirti. Lūkesčiai, kad nėra tenkinamas, yra klaidų. Pranešimai apie stderr ir stdout yra gaught, ir įtraukti į rezultatų žurnalą.
Kodėl crpcut
Svarbiausia, kad ji turi būti lengva rašyti testus. Su crpcut, jums sutelkti dėmesį į savo bandymo struktūra ir bandymų logika, o ne nustatytų jūsų bandymo aplinkoje ribų.
Su crpcut, kiekvienas testas veikia savo procesą ir savo darbo kataloge. Jei testas nepavyksta, procesas baigiasi iš karto, prieš ji papildomos žalos. Tai reiškia, kad kiekvienas testas prasideda nuo švaraus šiferio, neturi įtakos kitų bandymų. Tai yra compartmentalization.
Tai taip pat reiškia, kad bandymo komplekto ir toliau, net jei testas sugenda. Galite nustatyti terminai bandymų atvejus, ir, jei leidžiama laikas yra rimtai pereikvota, bandymo atveju procesas yra nužudyti. Šie du sudaryti tvirtumą dalį.
Galite nustatyti priklausomybes tarp bandymų atvejus, ir tarp bandymo apartamentai, taip, kad jei pagrindiniai testai nepavyksta, bandymai, kurie grindžiami pagrindinėmis funkcijomis nebus net paleisti.
Crpcut pagrindinis procesas neturi dinaminės atminties skirta tuo metu bandymo atveju procesas yra pradėtas, todėl jūs galite paleisti crpcut naudojant atminties testo nuorodą, pavyzdžiui, Valgrind ir jei yra atminties skiriama, kai bandymo atveju procesas baigiasi, jums galite būti tikri, kad jūs turite rasti Atminties nutekėjimas į savo testą.
Jei turite multi-core CPU, ji gali būti naudinga paleisti kelis testinius atvejus lygiagrečiai. crpcut leidžia tai.
Jei yra failai likę bandymo procesą "darbo katalogą po bandymo atveju proceso nutraukiamas, bandymo atveju laikomi nepatenkinamais. Darbo katalogas liko nepaliesta crpcut, jums ištirti
Kas naujo , šioje laidoje:.
- Ši versija palaiko skirstinius su senesnės versijos cmake.
Kas naujo versijos 1.9.1:
- libcrpcut_basic.so buvo pastatytas, bet neįrengtas
Kas naujo versijos 1.8.4:
- Tai yra nepilnametis Ištaisyta spaudai ištaisyti Valgrind matavimo problemos , bandymų priklausomybės ir klaidingas, bandymo trukmė atributas XML pranešimais.
Kas naujo versijos 1.8.2:
- Ši funkcija nepilnametis didinimas daro komandinės eilutės parametrą - -timeout-daugiklis = koeficientas dabar taip pat turi poveikį dėl rungtynių statybos ir sunaikinimo praėjęs laikas.
Kas naujo versijos 1.8.1:
- Ši funkcija nepilnametis didinimas daro komandinės eilutės parametrą - -timeout-daugiklis = koeficientas dabar taip pat turi poveikį dėl rungtynių statybos ir sunaikinimo praėjęs laikas.
Kas naujo versijos 1.7.2:
- Ši versija išsprendžia nedidelę klaidą su NO_CORE_FILE bandymo modifikatorius kuris įvyko Linux, kai / proc / sys / kernel / core_pattern aprašyta vamzdynų pagrindinę dump programai, o ne taupyti į failą.
Kas naujo versijos 1.6.1:
- Tai už klaidą pleistras, kad kai atvejų sukelia neteisingas XML produkciją trūksta apie blocked_tests sąrašą arti.
Kas naujo versijos 1.6.0:
- Naujos funkcijos yra papildoma neprivaloma parametras ASSERT_THROW () ir VERIFY_THROW (), kuri tikrina išimties objekto vertę, du istream pagrįsta versija get_parameter () pasiimti išlaikė iš komandinės eilutės reikšmes ir galimybė statyti libcrpcut kaip statinis ar bendras biblioteką.
Kas naujo 1.5.0 versija:
- Pagrindinis nauja funkcija yra žymėjimas bandymų. Žymos yra testas atrankos metodas statmenos kad testsuites. Žymos taip pat gali būti naudojamas atskirti bandymą, yra labai svarbūs (pvz regresijos) ir bandymą, yra ne kritinė (pvz funkcionalumas metu dirbo).
- Eksperimentinis parama taip pat galima papuošti bandymų ataskaitas, pavyzdžiui, ANSI spalvų išbėga.
Komentarai nerastas