Български Spanish English

Юнит-тестване с QTest

За общ преглед на това как се правят юнит (модулни) тестове с qtestlib вижте официалното ръководство [qt-project.org]

Пускане и компилиране на QTests със CTest

По предназначение CTest e само съоръжение за тестване, което работи с QTest.

Приложеният фрагмент от CMakeLists.txt описва файловете, които се използват за теста.

  1. enable_testing(true)
  2. include_directories( test )
  3.  
  4. set(test_additional
  5.     some_dependency.cpp
  6.     some_other_dependency.cpp
  7. )
  8. add_test(dummytest test/DummyTest.cpp)

Ако не желаета тестовете да се създават непрекъснато заменете

  1. enable_testing()
и пускайте cmake чрез
  1. cmake .. -DENABLE_TESTING=true
в случайте, когато искате да ги съдадете.

Приложеният по-долу макрос използва променливата ${test_additional} за да окаже допълнителни файлове, които са необходими за теста и трябва да бъдат компилирани. Добавя тест с

  1. add_test()
към CTest теста “database”.

  1. MACRO(add_test testname testsrc)
  2.     SET(test_${testname}_SRCS ${testsrc})
  3.  
  4.     qt4_automoc(${test_${testname}_SRCS})
  5.     add_executable(test_${testname} ${test_${testname}_SRCS} ${test_additional})
  6.     target_link_libraries(test_${testname} ${QT_QTCORE_LIBRARY}
  7.             ${QT_QTTEST_LIBRARY} ${QT_QTGUI_LIBRARY}
  8.             ${GSOAP_LIBRARIES} ${QT_QTLOCATION_LIBRARY})
  9.  
  10.     ADD_TEST(test_${testname} test_${testname})
  11. ENDMACRO(add_test)

Тестовете могат да бъдат компилирани с

  1. make
и изпълнени директно чрез името на теста (test_${testname} както е показано по-горе) или всеки тест като партида чрез
  1. make test

Categories: