CMake

2011-05-05 30 views
24

ile Google C++ Test Çerçevesini kullanmanın en basit örneği Çok basit bir C++ kitaplığım var (bir başlık dosyası, bir .cpp dosyası). Google C++ Test Çerçevesi'ni kullanarak bu proje için birim testleri yazmak istiyorum. Ben kendi ana() işlevi yazmak düşünmüyorsanızCMake

~/project1 
| 
|-- project1.cpp 
|-- project1.h 
|-- project1_unittests.cpp 
\-- CMakeLists.txt 

: Burada

dizin yapıdır. primer'da belirtildiği gibi gtest_main ile bağlantı kurmak istiyorum. CMakeLists.txt ne içermelidir?

cevap

25

CKağıt yerleşik test alt sistemi etkinleştirin:

add_executable(runUnitTests 
    project1_unittests.cpp 
) 
target_link_libraries(runUnitTests gtest gtest_main) 

bu yürütülebilir çalışır bir test ekleyin:

# For make-based builds, defines make target named test. 
# For Visual Studio builds, defines Visual Studio project named RUN_TESTS. 
enable_testing() 

ünite testleri çalıştırmak ve GTEST ve gtest_main ile bağlayacak bir yürütülebilir derlemek :

add_test(
    NAME runUnitTests 
    COMMAND runUnitTests 
) 
+0

Çok teşekkür ederim. Bu çok yardımcı oldu. Hem gtest, gtest_main hem de pthread ile bağlantı kurmak zorunda kaldım. Ayrıca libgtest.a ve libgtest_main.a için mutlak yollar belirtmek zorunda kaldım; Bu statik kütüphaneleri linker arama yoluna eklemek için daha iyi bir yol var mı? –

+0

Anladım! Ben bash içinde GTEST_ROOT'u ve ihraç ettim ve link_directories ($ ENV {GTEST_ROOT}) ile include_directories ($ ENV {GTEST_ROOT}/include) verdim. –

+2

Ya da sadece cmake -DGTEST_ROOT = ~/path/to/googletestroot diyelim .. –