Sette opp GTest
Legg til og kjør rammeverket
Sette opp GTest er en gratis leksjon i C++ Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C++ Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C++ Academy inneholder totalt 4 leksjoner.
Hvorfor et testrammeverk?
Google Test (GTest) er et mye brukt rammeverk for enhetstesting i C++. Det tilbyr testregistrering, omfattende påstander, test-fixtures og tydelig rapportering, slik at De kan kontrollere koden automatisk.
Skaffe GTest
Vanlige måter å skaffe GTest på:
- Systempakke (for eksempel
libgtest-dev) - FetchContent i CMake, som henter fra GitHub
- En inkludert submodul
FetchContent er det mest portable alternativet for nye prosjekter.
CMake med FetchContent
Et minimalt CMake-oppsett laster ned GoogleTest og lenker det inn.
# CMakeLists.txt
include(FetchContent)
FetchContent_Declare(
googletest
URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip
)
FetchContent_MakeAvailable(googletest)
add_executable(my_tests test_main.cpp)
target_link_libraries(my_tests GTest::gtest_main)Deres første test
En test deklareres med TEST-makroen, som tar et navn på en testserie og et testnavn. Inne i testen bruker De påstander.
#include <gtest/gtest.h>
int add(int a, int b) { return a + b; }
TEST(MathTest, AddsPositive) {
EXPECT_EQ(add(2, 3), 5);
}Ingen main() nødvendig
Lenking mot GTest::gtest_main leverer main()-funksjonen som kjører alle registrerte tester. De trenger bare å skrive testtilfellene.
Skrive egen main
Hvis De trenger et egendefinert inngangspunkt, initialiserer De GTest selv.
#include <gtest/gtest.h>
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}Bygge og kjøre
Etter at CMake er konfigurert, bygger og kjører De programmet.
cmake -S . -B buildcmake --build build./build/my_tests
GTest skriver ut en farget oppsummering av beståtte og mislykkede tester.
Lese resultatet
Hver test rapporterer først [ RUN ], og deretter [ OK ] eller [ FAILED ]. En siste linje viser hvor mange tester som bestod. Feilrapporter inneholder filen, linjen og forventede kontra faktiske verdier.
Kjøre et utvalg
Bruk flagget --gtest_filter til å kjøre bare tester som samsvarer, for eksempel ./my_tests --gtest_filter=MathTest.*. Dette gjør målrettet feilsøking raskere.
Integrere med CTest
Kall enable_testing() og registrer binærfilen med gtest_discover_tests, slik at ctest kan kjøre testserien i CI.
# CMakeLists.txt
enable_testing()
include(GoogleTest)
gtest_discover_tests(my_tests)En god arbeidsflyt
Skriv en test som mislykkes, implementer koden, og se den bestå. Hold testene raske og uavhengige, slik at De kan kjøre dem ved hver endring.
Hurtigsjekk
Husk hvordan main() blir levert.
Oppsummering
De har satt opp Google Test.
- Skaff det via FetchContent, en pakke eller en submodul
TEST(Suite, Name)deklarerer en test- Lenk inn
gtest_mainfor en automatiskmain() - Bygg, kjør, filtrer og integrer med CTest
Lær deg C++ med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 51
- Leksjoner
- 203
Ofte stilte spørsmål
Er leksjonen «Sette opp GTest» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien C++ Academy, inkludert «Sette opp GTest», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i C++ Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Sette opp GTest»?
Legg til og kjør rammeverket Du øver på C++ Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med C++ Academy?
Ingen tidligere erfaring er nødvendig. C++ Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Sette opp GTest»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne C++ Academy-leksjonen?
Ja. Alle C++ Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.