niedziela, 2 marca 2014

Instalacja i uruchomienie pierwszego testu z Google Test Framework (GTest) na Linuxie (Ubuntu)

Google Test jest to framework służący do pisania testów jednostkowych w C++. W tym poście wyjaśnię w jaki sposób zainstalować oraz uruchomić Google Test na Linuxie (Ubuntu).

1. Pierwszym krokiem jest instalacja gtest development package:
sudo apt-get install libgtest-dev
2. Należy pamiętać, że ten pakiet instaluje pliki źródłowe. Kod musisz skompilować samemu, tzn. stworzyć niezbędne pliki biblioteki. Pliki źródłowe powinny być umieszczone w katalogu /usr/src/gtest. Przejdź do tego folderu i używając cmake skompiluj bibliotekę:
sudo apt-get install cmake # install cmake
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make

# copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder
sudo cp *.a /usr/lib
3.Teraz wypadałoby przetestować jakiś prosty kod:
//codeToTest.cpp
#include 
 
double add(const double a, const double b) 
{
    return a + b;
}
4. W poniższym kodzie, tworzymy dwa testy, które umożliwiają testowanie funkcji za pomocą prostego makra "assertion". Istnieje wiele innych makr w tym framework-u (patrz http://code.google.com/p/googletest/wiki/Primer#Assertions). Kod zawiera główną funkcję, która automatycznie uruchomia wszystkie testy. Prosto i szybko.
// tests.cpp
#include "codeToTest.cpp"
#include 

TEST(addTest, positiveInput) 
{ 
    ASSERT_EQ(3., add(1., 2.));
    ASSERT_EQ(35., add(10., 25.));
}

TEST(addTest, nagetiveInput) 
{
    ASSERT_EQ(1., add(-1., 2.));
    ASSERT_EQ(-1., add(1., -2.));
}
 
int main(int argc, char **argv) 
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}
5. Następnym krokiem jest kompilacja kodu. Należy stworzyć mały plik CMakeLists.txt, żeby skompilować testy. Plik ten lokalizuje bibliotekę testową Google Test i łączy go z aplikacją testową. Należy pamiętać również o tym, żeby zlinkować biblioteke pthread.
cmake_minimum_required(VERSION 2.6)

# Locate GTest
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})

# Link runTests with what we want to test and the GTest and pthread library
add_executable(runTests tests.cpp)
target_link_libraries(runTests ${GTEST_LIBRARIES} pthread)
6. Skompiluj i uruchom testy:
cmake CMakeLists.txt
make
./runTests
Powodzenia w testowaniu kodu.

Bibliografia:

https://code.google.com/p/googletest/wiki/Documentation

Brak komentarzy:

Prześlij komentarz