Rozpoczęcie pracy z CppUTest
·
14 maj 2017

Najważniejsze informacje
CppUTest to lekki, aktywnie utrzymywany framework do testowania w stylu xUnit dla C/C++, z warstwą integracyjną C, która działa bezproblemowo nawet w kodzie intensywnie opartym na C.
Możesz go zainstalować za pomocą menedżerów pakietów (dystrybucje Linux, Homebrew) lub sklonować repozytorium GitHub.
Minimalna konfiguracja składa się z:
katalogu produkcyjnego
src/,katalogu testowego
t/,urządzenia do uruchamiania testów (
CommandLineTestRunner), orazmodułów testowych używających bloków
TEST_GROUPiTEST().
CppUTest dostarcza pomocnika MakefileWorker.mk, który upraszcza budowanie testów, łączenie bibliotek i obsługę flag.
Wykrywanie wycieków pamięci jest domyślnie włączone przez nadpisania malloc/free, wychwytując wycieki w testowanym kodzie źródłowym.
Pokrycie kodu za pomocą gcov łatwo integruje się poprzez włączenie
CPPUTEST_USE_GCOV=Y, generując pełne raporty z pokrycia i podsumowania HTML.Framework zawiera zaawansowane funkcje: mockowanie, wtyczki, skrypty pomocnicze oraz bezpośrednią interoperacyjność z C — przydatne dla złożonych kodów korporacyjnych.
Podsumowanie pytań i odpowiedzi
Czym jest CppUTest i dlaczego warto go używać?
To solidny, stylu xUnit framework testowy dla C/C++ z czystym API, wbudowanymi makrami asercji, wykrywaniem wycieków i aktywnym rozwojem — idealny dla systemów dziedzictwa lub nowoczesnych.
Jak zorganizować podstawowy projekt używając CppUTest?
Jak uruchomić wszystkie testy?
Tester używa:
Jak budujesz testy bez ręcznej konfiguracji opcji kompilatora?
Użyj
MakefileWorker.mkz CppUTest, który automatycznie obsługuje flagi, łączenie i wykonywanie testów.Czy CppUTest może automatycznie wykrywać wycieki pamięci?
Tak. Nadpisuje malloc/free podczas budowy testów, zgłaszając:
który test wyciekł,
gdzie to miało miejsce,
wielkość wycieku i zawartość pamięci.
Przykład nieudanej jednoznacznej informacji:
Jak mogę wygenerować pokrycie kodu?
Włącz:
CPPUTEST_USE_GCOV=YUpewnij się, że
filterGcov.shjest dostępny w$(CPPUTEST_HOME)/scripts/.Uruchom: make
gcovTo generuje
.gcov, tekst podsumowania i raporty pokrycia w formacie HTML.
Co jeszcze może zrobić CppUTest poza podstawowym testowaniem?
framework do mockowania
system wtyczek
skrypty automatyzacji pomocniczej
integracja z natywnym C
rozbudowane makra asercji
Dla kogo CppUTest jest najbardziej odpowiedni?
Zespoły pracujące z systemami wbudowanymi, platformami C, usługami C++ lub dowolnym środowiskiem, w którym niezawodność i bezpieczeństwo pamięci muszą być nieustannie weryfikowane.
W SparkPost poświęcamy dużo czasu i wysiłku na testowanie naszego kodu. Nasza platforma jest napisana w C, a ostatnio badałem integrację z frameworkiem do testów jednostkowych o nazwie „CppUTest”, który oferuje testowanie w stylu xUnit dla C/C++. Ten framework jest solidny, bogaty w funkcje i znajduje się w aktywnej fazie rozwoju, co czyni go świetnym wyborem. Oferuje również warstwę integracyjną w C, co ułatwiło korzystanie z naszego kodu C na platformie, mimo że większość frameworka jest napisana w C++. Ten samouczek omawia, jak rozpocząć pracę z CppUTest w swoich projektach.
Zainteresowany więcej?
To tylko wierzchołek góry lodowej, jeśli chodzi o wszystkie funkcje zawarte w tym narzędziu. Oprócz podstaw omówionych tutaj, ma również framework do mockowania, bezpośrednią warstwę integracyjną C oraz framework wtyczek, żeby wymienić tylko kilka ważnych. Repozytorium zawiera również całą katalog pomocniczych skryptów, które mogą pomóc zautomatyzować niektóre rutynowe części pracy z frameworkiem.
Mam nadzieję, że informacje tutaj pomogą Ci poprawić jakość Twojego kodu C/C++ dzięki temu wspaniałemu narzędziu!
Pobieranie CppUTest
Strona projektu CppUTest jest dostępna na oficjalnej stronie, a repozytorium znajduje się na githubie. Jest również dostępny w repozytoriach zarządzania pakietami dla wielu dystrybucji Linuxa, a także w homebrew na Mac OS. Przykłady, które następują, były wykonane na Mac OS X, ale pochodzą z kodu napisanego dla Red Hat, systemu operacyjnego, na którym działa nasza platforma.
Podstawy są dobrze udokumentowane na stronie głównej CppUTest. Przechodzimy przez to szybko, aby dotrzeć do niektórych ciekawszych funkcji.



