W procesie ustalania naszą C++ ramy testów jednostkowych dla następnych lat zakwalifikowani GoogleTest i CppUnit. Mam trochę doświadczenia z obydwoma, a moje ciężkie preferencje to GoogleTest. W każdym razie, aby przekonać mojego szefa, potrzebuję trochę informacji: fakty, więc zrobiłem trochę czytania w Internecie, w tym podręczniki, strony wiki i niektóre źródła. Wymyśliłem listę zalet GoogleTest i jedną zaletę CppUnit (graficzne testy biegaczy). Tutaj są one uporządkowane według postrzegane przydatność:GoogleTest vs CppUnit: Fakty
- INSTANTIATE_TEST_CASE_P instancji przypadek testowy z dowolnym zestawem parametrów chcesz, w tym iloczyn kartezjański
- FRIEND_TEST do testowania członków prywatnych klasy (dla wszystkich starszych kod)
- zwrotnym utrzymuje się pułapki
- niezakończonych zgonem twierdzi
- "out of the box" integracji googlemock
- automat IC testach wykrywania, nie ma potrzeby, aby je wyliczyć
- testy mogą być wyłączone i włączone
- testy prowadzone mogą być wybierane za pomocą desenie nazwa
- wartość tests/typu parametryzowane
- zdefiniowany przez użytkownika orzecznik twierdzi
- śmierć testuje
- znacznie bogatszy zestaw twierdzi
- typ twierdzi
- twierdząc na podprogramów
- Dodatkowe informacje debugowania można dodawać do twierdzi użyciu < <
- RecordProperty emituje ostatnią wartość nieruchomości do wyjścia XML
- SCOPED_TRACE pomaga zrozumieć kontekst awarii twierdzenie pochodzące z wewnątrz sub-rutynowych lub pętli.
- xUnit wyjście XML, mogą być wyświetlane przez Jenkinsa od razu bez transformacji XSLT pomiędzy
- obsługuje niestandardowe typy ją drukarni
- czasu zużywanego przez wskazanie testu (podejrzewam, że jest to również możliwe z CppUnit ale haven zdobione a)
- detektor testu API (wtyczki przez użytkownika)
- testy tasowanie
- żadnych wyjątków i RTTI
m Mam rację, zakładając, że wszystkie powyższe nie są obsługiwane przez CppUnit? Czy jest przydatna funkcja GoogleTest niedostępna w CppUnit Brakuje mi?
I last but not least: Czy są jakieś fajne funkcje CppUnit, których GoogleTest nie ma?
Dzięki!
Niektóre odpowiedzi do [Porównanie struktur testowych jednostek C++] (http://stackoverflow.com/questions/242926/comparison-of-c-unit-test-frameworks) odnoszą się konkretnie do funkcji GoogleTest. –
Kilka lat temu robiłem podobną ankietę, GoogleTest nie było wtedy. Skoncentrowałem się na CXXTest, który posiadał mechanizm do wyliczenia przypadków testowych przez wstępny proces parsowania z Perlem. To było znacznie lepsze niż CppTest. Powiedział, że nic nie wiem o GoogleTest. –
Graficzny biegacz testowy to zaleta? Zwykle chcesz coś, co można łatwo zautomatyzować, ponieważ automatyzacja oznacza łatwiejsze i częstsze otrzymywanie opinii testowych. –