crpcut (uttales "dritt cut") er den compartmented Robust Posix C ++ Unit Tester. Med crpcut er det enkelt å skrive tester som andre unit-test rammeverk ikke klarer.
Innledende eksempel:
Et eksempel teste deler av std :: string:
& Nbsp; #include
& Nbsp; #include
& Nbsp; struct apastr // ligaen for mosts tester
& Nbsp; {
& Nbsp; apastr (): s ("apa") {}
& Nbsp; std :: string s;
& Nbsp;};
& nbsp; TESTSUITE (grunnleggende)
& Nbsp; {
& Nbsp; TEST (default_constr_and_destr)
& Nbsp; {
& Nbsp; std :: string s;
& Nbsp; ASSERT_TRUE (s.empty ());
& Nbsp; ASSERT_EQ (s.length (), 0);
& Nbsp;}
& Nbsp; TEST (constr_from_char_array, apastr,
& Nbsp; DEPENDS_ON (default_constr_and_destr))
& Nbsp; {
& Nbsp; ASSERT_EQ (s.length (), 3UL);
& Nbsp;}
& Nbsp; TEST (ved, apastr,
& Nbsp; DEPENDS_ON (default_constr_and_destr))
& Nbsp; {
& Nbsp; ASSERT_EQ (s.at (1), "p");
& Nbsp;}
& Nbsp;}
& nbsp; TESTSUITE (feil, DEPENDS_ON (ALL_TESTS (grunnleggende)))
& Nbsp; {
& Nbsp; TEST (at_out_of_range, apastr,
& Nbsp; EXPECT_EXCEPTION (std :: out_of_range))
& Nbsp; {
& Nbsp; s.at (4);
& Nbsp;}
& Nbsp; TEST (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; returnere crpcut :: test_case_factory :: run_test (argc, argv);
& Nbsp;}
Lignende tester fordeler av å være gruppert i test-suiter. Test-suiter kan stole på andre test-suiter, noe som betyr at de inneholdt testene vil bare kjøre hvis alle tester det avhenger er fullført. Resultatene kan valideres ved hjelp av en rekke hevde makroer. Tester kan bruke inventar til å uttrykke felles innhold. Kan forventes tester for å avslutte ved unntak, eller dø. Forventninger som ikke er oppfylt er feil. Meldinger på stderr og stdout er gaught, og inngår i resultatloggen.
Hvorfor crpcut
Viktigst, det må være lett å skrive tester. Med crpcut, fokuserer du på din test struktur og test logikk, ikke på grensene pålagt av testmiljøet.
Med crpcut, går hver test i sin egen prosess og sin egen arbeidskatalog. Hvis en test mislykkes, avslutter prosessen umiddelbart, før den gjør ytterligere skade. Dette betyr at hver test starter fra et rent rulleblad, upåvirket av andre tester. Dette er compartmentalization.
Det betyr også at testsuite fortsetter, selv om en test krasjer. Du kan sette frister for testtilfeller, og hvis den tillatte tiden er alvorlig overtrukket, er testen saken prosess drept. Disse to utgjør robusthet del.
Du kan definere avhengigheter mellom testtilfeller og mellom testsuiter, slik at hvis en grunnleggende tester svikter, de testene som er basert på den grunnleggende funksjonaliteten vil ikke engang bli kjørt.
Den crpcut viktigste prosessen ikke har noen dynamisk minnebruken på den tiden en test prosessen er startet, slik at du kan kjøre crpcut bruker et minne test verktøy, for eksempel Valgrind, og hvis det er allokert minne når testen saken prosessen opphører, du kan være trygg på at du har funnet en minnelekkasje i testen.
Hvis du har en multi-core CPU, kan det være gunstig å kjøre flere testtilfeller parallelt. crpcut tillater det.
Hvis det finnes filer igjen i testprosessen 'arbeidsmappen etter testen saken prosessen har avsluttet, er testen saken anses mislyktes. Arbeidsmappen er urørt av crpcut, for deg å undersøke
Hva er nytt i denne utgaven:.
- Denne versjonen støtter distribusjoner med gamle versjoner av CPåse.
Hva er nytt i versjon 1.9.1:
- libcrpcut_basic.so ble bygd, men ikke installert
Hva er nytt i versjon 1.8.4:
- Dette er en mindre feilretting utgivelse korrigere Valgrind instrumentering problemer , testavhengigheter og feil test varighet attributt i XML-rapporter.
Hva er nytt i versjon 1.8.2:
- Dette mindre funksjonsforbedring gjør kommandolinjeparameteren - -timeout-multiplikator = faktor nå også ha effekt på tidsavbrudd for ligaen konstruksjon og ødeleggelse.
Hva er nytt i versjon 1.8.1:
- Dette mindre funksjonsforbedring gjør kommandolinjeparameteren - -timeout-multiplikator = faktor nå også ha effekt på tidsavbrudd for ligaen konstruksjon og ødeleggelse.
Hva er nytt i versjon 1.7.2:
- Denne versjonen fikser en liten bug med NO_CORE_FILE test modifier som skjedde på Linux når / proc / sys / kernel / core_pattern beskrevet rykende kjernen dump til et program i stedet for å spare til en fil.
Hva er nytt i versjon 1.6.1:
- Dette er en patch for en feil som i noen tilfeller forårsaket misformet XML-utgang ved mangler en nær på listen blocked_tests.
Hva er nytt i versjon 1.6.0:
- De nye funksjonene er en ekstra valgfri parameter for å ASSERT_THROW () og VERIFY_THROW () som sjekker verdien av et unntak objekt, to istream basert versjon av get_parameter () for å plukke verdiene som sendes fra kommandolinjen, og et alternativ til å bygge libcrpcut som statisk eller delt bibliotek.
Hva er nytt i versjon 1.5.0:
- Den store nye funksjonen tagging av tester. Tags er en test valgmetoden ortogonal til at av testsuites. Etiketter kan også brukes til å skille mellom test som er kritisk (f.eks regresjoner) og test som er ikke-kritisk (f.eks funksjonaliteten for tiden arbeides med.)
- Eksperimentell støtte er også tilgjengelig for å dekorere testrapporter med, for eksempel, ANSI-farge rømming.
Kommentarer ikke funnet