2011-09-16 4 views
18

Jestem nowy w google testowej strukturze C++. Jest dość łatwy w użyciu, ale zastanawiam się, jak rozdzielić sprawy na wiele plików testowych. Jaka jest najlepsza droga?Oddzielne przypadki testowe w wielu plikach w teście google

Dołącz bezpośrednio pliki .cpp. Korzystanie z nagłówka wydaje się, że nic nie robi ...

Każda pomoc jest mile widziana

Odpowiedz

25

Utwórz jeden plik zawierający tylko głównym, aby uruchomić testy.

// AllTests.cpp 
#include "gtest/gtest.h" 

int main(int argc, char **argv) 
{ 
    testing::InitGoogleTest(&argc, argv); 
    return RUN_ALL_TESTS(); 
} 

Następnie umieść testy w innych plikach. Możesz umieścić dowolną liczbę testów w pliku. Tworzenie jednego pliku na klasę lub na plik źródłowy może działać dobrze.

// SubtractTest.cpp 
#include "subtract.h" 
#include "gtest/gtest.h" 

TEST(SubtractTest, SubtractTwoNumbers) 
{ 
    EXPECT_EQ(5, subtract(6, 1)); 
} 

Wymaga to, aby wszystkie testy mogły współdzielić tę samą główną. Jeśli musisz zrobić coś specjalnego, musisz mieć wiele celów do budowania.

+0

Działa dobrze! Dzięki! – Killrazor

+0

Jeśli pracujesz z testem google w Xcode (prawdopodobnie również z Objective-C++), a twoje testy nie są uruchomione po podzieleniu zestawu testów w różnych plikach '.cpp', przejdź do celu testowego C++ opartego na teście google Xcode i aktywuj opcję "Wykonuj prelinkowanie pojedynczego obiektu" w opcjach kompilacji. – bithavoc

+0

Nie działa dla mnie. Podczas uruchamiania wykonywalnego testu AllTest nie jest wywoływana funkcja SubtractTest. Czy SubtractTest.cpp jest budowany jako plik wykonywalny lub biblioteka? – user3667089