This is a legacy Trac instance left read-only for reference purposes. More info. dev main | home

Testowanie projektu

Podstawowe założenie: testujemy 100% kodu. Testy powinny być pisane razem z właściwym kodem. Nie ma znaczenia czy przed czy po, ważne, żeby przed zamknięciem ticketa mieć pewność, że kod robi to co byśmy chcieli.

Manual do Boost::test macie tutaj: http://www.boost.org/doc/libs/1_39_0/libs/test/doc/html/utf/user-guide.html

Jako wzoru można użyć testów aktuatora: source:trunk/waterworld/tests/test_actuator.cpp Konieczne jest również dopisanie operatorów wyjścia do pliku nagłówkowego: source:trunk/waterworld/tests/tests.h

Całość projektu można szybko przestestować pod Linuksem skryptem test.sh który umieściłem w trunku.

Jeśli któryś moduł nie będzie przetestowany w 100%, będę wrzeszczał. W przypadku wątpliwości na pytania o testowanie jestem w stanie odpowiadać i ja (lRem) i Mariusz.

Jeśli coś pójdzie nie tak, to wyniki testów pojawiają się w pliku build/Testing/Temporary/LastTest.log - poziom szczegółowości jak do tej pory zawsze mi wystarczał, żeby dojść co jest nietego.

Sprawdzenie które dokładnie linijki nie zostały wykonane:

lrem@mbp:trunk $ cd build/waterworld/CMakeFiles/WaterWorld.dir/
lrem@mbp:WaterWorld.dir $ gcov iworld.cpp.gcno 
File '/usr/include/c++/4.0.0/new'
Lines executed:0.00% of 2
/usr/include/c++/4.0.0/new:creating 'new.gcov'

File '/Users/lrem/waterworld/trunk/waterworld/iworld.cpp'
Lines executed:43.75% of 16
/Users/lrem/waterworld/trunk/waterworld/iworld.cpp:creating 'iworld.cpp.gcov'

File '/usr/include/c++/4.0.0/bits/stl_list.h'
Lines executed:6.85% of 73
/usr/include/c++/4.0.0/bits/stl_list.h:creating 'stl_list.h.gcov'

File '/usr/include/c++/4.0.0/ext/new_allocator.h'
Lines executed:0.00% of 14
/usr/include/c++/4.0.0/ext/new_allocator.h:creating 'new_allocator.h.gcov'

File '/usr/include/c++/4.0.0/bits/allocator.h'
Lines executed:20.00% of 5
/usr/include/c++/4.0.0/bits/allocator.h:creating 'allocator.h.gcov'

File '/usr/include/c++/4.0.0/bits/list.tcc'
Lines executed:0.00% of 16
/usr/include/c++/4.0.0/bits/list.tcc:creating 'list.tcc.gcov'

lrem@mbp:WaterWorld.dir $ less iworld.cpp.gcov

Linijki nigdy nie wykonane to te oznaczone #####


Dyskusja?