The question is not so popular though deserve to be :)
Following Guillaume Racicot's answer, I constructed these two minimals functions that are very useful (to me). If you upvote my answer, consider up-voting his too without which I would not have been able to write my answer!
function(add_exe_linked_to_lib TEST_NAME TEST_FILE CLASS_SET)
add_executable(${TEST_NAME} ${TEST_FILE})
target_link_libraries(${TEST_NAME} PUBLIC ${CLASS_SET})
endfunction()
function(add_test_linked_to_lib TEST_NAME TEST_FILE CLASS_SET)
add_exe_linked_to_lib(${TEST_NAME} ${TEST_FILE} ${CLASS_SET})
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
endfunction()
a cmake file would look like:
function(add_exe_linked_to_lib TEST_NAME TEST_FILE CLASS_SET)
add_executable(${TEST_NAME} ${TEST_FILE})
target_link_libraries(${TEST_NAME} PUBLIC ${CLASS_SET})
endfunction()
function(add_test_linked_to_lib TEST_NAME TEST_FILE CLASS_SET)
add_exe_linked_to_lib(${TEST_NAME} ${TEST_FILE} ${CLASS_SET})
add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
endfunction()
cmake_minimum_required(VERSION 3.1)
set(CMAKE_CXX_STANDARD 11)
project("SUM-UP-TESTING")
#libraries
add_library(My_Class STATIC My_Class.cpp)
add_library(Another_Lib STATIC My_Class.cpp)
set(MY_LIBS My_Class Another_Lib)
#compile options
add_compile_options(-D DEBUG)
#main
add_exe_linked_to_lib(MAIN-TESTING main.cpp ${MY_LIBS})
# TEST
enable_testing()
add_test_linked_to_lib(Test_In_Code tests/testing1.cpp ${MY_LIBS})