Unit Testing/bg: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:Howto]] | [[Category:Howto]] | ||
[[Category:Developing with Qt]] | |||
'''Български''' [[Unit_Testing_Spanish|Spanish]] [[Unit_Testing|English]] | '''Български''' [[Unit_Testing_Spanish|Spanish]] [[Unit_Testing|English]] | ||
Line 5: | Line 6: | ||
= Юнит-тестване с QTest = | = Юнит-тестване с QTest = | ||
За общ преглед на това как се правят юнит (модулни) тестове с qtestlib вижте | За общ преглед на това как се правят юнит (модулни) тестове с qtestlib вижте "официалното ръководство":http://doc.qt.io/qt-5.0/qttestlib/qtest-tutorial.html | ||
== Пускане и компилиране на QTests със CTest == | == Пускане и компилиране на QTests със CTest == | ||
Line 13: | Line 14: | ||
Приложеният фрагмент от '''CMakeLists.txt''' описва файловете, които се използват за теста. | Приложеният фрагмент от '''CMakeLists.txt''' описва файловете, които се използват за теста. | ||
<code> | <code> | ||
enable_testing(true) | |||
include_directories( test ) | |||
set(test_additional | set(test_additional | ||
some_dependency.cpp | |||
some_other_dependency.cpp | |||
) | |||
add_test(dummytest test/DummyTest.cpp) | |||
</code> | |||
Ако не желаета тестовете да се създават непрекъснато заменете <code>enable_testing()<code> и пускайте cmake чрез <code>cmake .. -DENABLE_TESTING=true<code> в случайте, когато искате да ги съдадете. | Ако не желаета тестовете да се създават непрекъснато заменете <code>enable_testing()<code> и пускайте cmake чрез <code>cmake .. -DENABLE_TESTING=true<code> в случайте, когато искате да ги съдадете. | ||
Приложеният по-долу макрос използва променливата ${test_additional} за да окаже допълнителни файлове, които са необходими за теста и трябва да бъдат компилирани. Добавя тест с </code>add_test()</code> към CTest теста | Приложеният по-долу макрос използва променливата ${test_additional} за да окаже допълнителни файлове, които са необходими за теста и трябва да бъдат компилирани. Добавя тест с </code>add_test()</code> към CTest теста "database". | ||
<code> | <code> | ||
MACRO (add_test testname testsrc) | |||
SET (test_${testname}_SRCS ${testsrc}) | |||
qt4_automoc(${test_${testname}_SRCS}) | qt4_automoc(${test_${testname}_SRCS}) | ||
add_executable(test_${testname} ${test_${testname}_SRCS} ${test_additional}) | |||
target_link_libraries(test_${testname} ${QT_QTCORE_LIBRARY} | |||
${QT_QTTEST_LIBRARY} ${QT_QTGUI_LIBRARY} | |||
${GSOAP_LIBRARIES} ${QT_QTLOCATION_LIBRARY}) | |||
ADD_TEST(test_${testname} test_${testname}) | ADD_TEST(test_${testname} test_${testname}) | ||
ENDMACRO (add_test) | |||
</code> | |||
Тестовете могат да бъдат компилирани с <code>make<code> и изпълнени директно чрез името на теста (test_${testname} както е показано по-горе) или всеки тест като партида чрез <code>make test<code> | Тестовете могат да бъдат компилирани с <code>make<code> и изпълнени директно чрез името на теста (test_${testname} както е показано по-горе) или всеки тест като партида чрез <code>make test<code> |
Revision as of 13:06, 25 February 2015
Юнит-тестване с QTest
За общ преглед на това как се правят юнит (модулни) тестове с qtestlib вижте "официалното ръководство":http://doc.qt.io/qt-5.0/qttestlib/qtest-tutorial.html
Пускане и компилиране на QTests със CTest
По предназначение CTest e само съоръжение за тестване, което работи с QTest.
Приложеният фрагмент от CMakeLists.txt описва файловете, които се използват за теста.
enable_testing(true)
include_directories( test )
set(test_additional
some_dependency.cpp
some_other_dependency.cpp
)
add_test(dummytest test/DummyTest.cpp)
Ако не желаета тестовете да се създават непрекъснато заменете
enable_testing()<code> и пускайте cmake чрез <code>cmake .. -DENABLE_TESTING=true<code> в случайте, когато искате да ги съдадете.
Приложеният по-долу макрос използва променливата ${test_additional} за да окаже допълнителни файлове, които са необходими за теста и трябва да бъдат компилирани. Добавя тест с
add_test() към CTest теста "database".
MACRO (add_test testname testsrc)
SET (test_${testname}_SRCS ${testsrc})
qt4_automoc(${test_${testname}_SRCS})
add_executable(test_${testname} ${test_${testname}_SRCS} ${test_additional})
target_link_libraries(test_${testname} ${QT_QTCORE_LIBRARY}
${QT_QTTEST_LIBRARY} ${QT_QTGUI_LIBRARY}
${GSOAP_LIBRARIES} ${QT_QTLOCATION_LIBRARY})
ADD_TEST(test_${testname} test_${testname})
ENDMACRO (add_test)
Тестовете могат да бъдат компилирани с make
и изпълнени директно чрез името на теста (test_${testname} както е показано по-горе) или всеки тест като партида чрез
make test