Opsætning af GTest
Tilføj og kør frameworket
Opsætning af GTest er en gratis C++ Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i C++ Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C++ Academy-kurset indeholder 4 lektioner i alt.
Hvorfor et testrammeværk?
Google Test (GTest) er et meget udbredt C++-rammeværk til enhedstest. Det indeholder testregistrering, detaljerede kontroller, fixtures og tydelig rapportering, så du kan verificere kode automatisk.
Sådan får du GTest
Almindelige måder at hente GTest på:
- Systempakke (f.eks.
libgtest-dev) - FetchContent i CMake, som henter fra GitHub
- Et submodul, der er inkluderet i projektet
FetchContent er den mest portable løsning til nye projekter.
CMake med FetchContent
En minimal CMake-opsætning henter GoogleTest og sammenkæder det.
# 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)Din første test
En test erklæres med TEST-makroen, som tager et testsuitenavn og et testnavn. Inde i den bruger du kontroller.
#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
Linkning mod GTest::gtest_main leverer den main(), der kører alle registrerede tests. Du skriver kun testtilfældene.
Skriv din egen main
Hvis du har brug for et brugerdefineret indgangspunkt, initialiserer du selv GTest.
#include <gtest/gtest.h>
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}Bygning og kørsel
Efter konfiguration af CMake bygger og kører du programmet.
cmake -S . -B buildcmake --build build./build/my_tests
GTest udskriver en farvet opsummering af beståede og fejlede tests.
Læsning af outputtet
Hver test rapporterer [ RUN ] og derefter [ OK ] eller [ FAILED ]. En afsluttende linje viser, hvor mange tests der bestod. Fejl indeholder filen, linjen og de forventede kontra de faktiske værdier.
Kør et udsnit
Brug flaget --gtest_filter til kun at køre tests, der matcher, f.eks. ./my_tests --gtest_filter=MathTest.*. Det gør målrettet fejlfinding hurtigere.
Integrering med CTest
Kald enable_testing(), og registrer den binære fil med gtest_discover_tests, så ctest kan køre din testsuite i CI.
# CMakeLists.txt
enable_testing()
include(GoogleTest)
gtest_discover_tests(my_tests)En sund arbejdsgang
Skriv en test, der fejler, implementer koden, og se den bestå. Hold tests hurtige og uafhængige, så du kan køre dem ved enhver ændring.
Hurtigt tjek
Husk, hvordan main() leveres.
Opsummering
Du har sat Google Test op.
- Hent det via FetchContent, en pakke eller et submodul
TEST(Suite, Name)erklærer en test- Link
gtest_mainfor at få en automatiskmain() - Byg, kør, filtrer, og integrer med CTest
Lær C++ med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 51
- Lektioner
- 203
Ofte stillede spørgsmål
Er lektionen “Opsætning af GTest” gratis?
Ja — alle 3 lektioner i læringssporet C++ Academy, inklusive “Opsætning af GTest”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. C++ Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Opsætning af GTest”?
Tilføj og kør frameworket Du øver dig i C++ Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C++ Academy?
Der kræves ingen tidligere erfaring. C++ Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Opsætning af GTest”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C++ Academy-lektion?
Ja. Alle C++ Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Opsætning af GTest
- Assertions og matchers
- Fixtures og opsætning
- Mocking med GMock