cmake_minimum_required(VERSION 3.20) enable_testing() find_package(Catch2 CONFIG REQUIRED) find_package(trompeloeil CONFIG REQUIRED) # Macro to create test executable function(add_test_target TEST_NAME SOURCE_FILE) add_executable(${TEST_NAME} ${SOURCE_FILE} ) target_link_libraries(${TEST_NAME} PRIVATE AutoStoreLib Catch2::Catch2WithMain trompeloeil::trompeloeil ) target_include_directories(${TEST_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/lib/include ${PROJECT_SOURCE_DIR}/lib/src ${PROJECT_SOURCE_DIR}/tests ) # Add test to CTest add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME}) endfunction() # Create test executables add_test_target(FileItemRepositoryTest integration/FileItemRepository.test.cpp) # add_integration_test(FileUserRepositoryTest integration/FileUserRepository.test.cpp) add_test_target(AddItemTest unit/AddItem.test.cpp) add_test_target(TaskSchedulerTest unit/TaskScheduler.test.cpp)