Add unit and integration tests for DAOs, Translator, EventBus, and SyncScheduler (Phase 9 - Testing & QA)
This commit is contained in:
@@ -90,3 +90,88 @@ target_include_directories(wino-mail-qt PRIVATE ${GMIME_INCLUDE_DIRS})
|
||||
|
||||
# Install (optional)
|
||||
install(TARGETS wino-mail-qt DESTINATION bin)
|
||||
|
||||
# Enable testing
|
||||
enable_testing()
|
||||
|
||||
# Find Qt Test
|
||||
find_package(Qt6 COMPONENTS Test REQUIRED)
|
||||
|
||||
# Unit tests for DAOs
|
||||
add_executable(tests_dao_unit
|
||||
tests/unit/test_accountdao.cpp
|
||||
tests/unit/test_folderdao.cpp
|
||||
tests/unit/test_mailitemdao.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(tests_dao_unit
|
||||
PRIVATE Qt6::Core Qt6::Test
|
||||
)
|
||||
|
||||
if(USE_DTKWIDGET AND DTKWIDGET_FOUND)
|
||||
target_link_libraries(tests_dao_unit PRIVATE ${DTKWIDGET_LIBS})
|
||||
endif()
|
||||
if(GMIME_FOUND)
|
||||
target_link_libraries(tests_dao_unit PRIVATE ${GMIME_LIBRARIES})
|
||||
target_include_directories(tests_dao_unit PRIVATE ${GMIME_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
add_test(NAME dao_unit COMMAND tests_dao_unit)
|
||||
|
||||
# Unit tests for Translator
|
||||
add_executable(tests_translator_unit
|
||||
tests/unit/test_translator.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(tests_translator_unit
|
||||
PRIVATE Qt6::Core Qt6::Test
|
||||
)
|
||||
|
||||
if(USE_DTKWIDGET AND DTKWIDGET_FOUND)
|
||||
target_link_libraries(tests_translator_unit PRIVATE ${DTKWIDGET_LIBS})
|
||||
endif()
|
||||
if(GMIME_FOUND)
|
||||
target_link_libraries(tests_translator_unit PRIVATE ${GMIME_LIBRARIES})
|
||||
target_include_directories(tests_translator_unit PRIVATE ${GMIME_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
add_test(NAME translator_unit COMMAND tests_translator_unit)
|
||||
|
||||
# Unit tests for EventBus
|
||||
add_executable(tests_eventbus_unit
|
||||
tests/unit/test_eventbus.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(tests_eventbus_unit
|
||||
PRIVATE Qt6::Core Qt6::Test
|
||||
)
|
||||
|
||||
if(USE_DTKWIDGET AND DTKWIDGET_FOUND)
|
||||
target_link_libraries(tests_eventbus_unit PRIVATE ${DTKWIDGET_LIBS})
|
||||
endif()
|
||||
if(GMIME_FOUND)
|
||||
target_link_libraries(tests_eventbus_unit PRIVATE ${GMIME_LIBRARIES})
|
||||
target_include_directories(tests_eventbus_unit PRIVATE ${GMIME_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
add_test(NAME eventbus_unit COMMAND tests_eventbus_unit)
|
||||
|
||||
# Integration tests (require full application context)
|
||||
add_executable(tests_sync_integration
|
||||
tests/integration/test_syncscheduler.cpp
|
||||
tests/integration/test_notificationmanager.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(tests_sync_integration
|
||||
PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Network Qt6::Sql Qt6::Test
|
||||
)
|
||||
|
||||
if(USE_DTKWIDGET AND DTKWIDGET_FOUND)
|
||||
target_link_libraries(tests_sync_integration PRIVATE ${DTKWIDGET_LIBS})
|
||||
endif()
|
||||
if(GMIME_FOUND)
|
||||
target_link_libraries(tests_sync_integration PRIVATE ${GMIME_LIBRARIES})
|
||||
target_include_directories(tests_sync_integration PRIVATE ${GMIME_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
add_test(NAME sync_integration COMMAND tests_sync_integration)
|
||||
|
||||
Reference in New Issue
Block a user