diff --git a/cmake/CodeCoverage.cmake b/cmake/CodeCoverage.cmake
index 27c6028d70eb608de54f879d4d6e4b59d070f2aa..a9b17e2f26042ad45bb2378f169178761e819387 100644
--- a/cmake/CodeCoverage.cmake
+++ b/cmake/CodeCoverage.cmake
@@ -136,6 +136,18 @@
 include(CMakeParseArguments)
 
 option(CODE_COVERAGE_VERBOSE "Verbose information" FALSE)
+option(SKIP_CODE_COVERAGE "Skip code coverage" OFF)
+
+if (SKIP_CODE_COVERAGE)
+    return()
+endif()
+
+find_library(covlib NAMES gcov lcov)
+message(STATUS "covlib: >${covlib}<")
+if (${covlib} STREQUAL "covlib-NOTFOUND")
+  message(Warning "lcov or gcov libraries not found, skipping code coverage.")
+  return()
+endif()
 
 # Check prereqs
 find_program( GCOV_PATH gcov )
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 07a2092b76c4bd72e428e1d2c7b7e733e8994eea..a1c2c7abcdb1c76bd325ddcd5d89cc42b42a0a3c 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -88,7 +88,6 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/caosdb_test_utility.h.in
 
 include(CodeCoverage)
 
-# TODO: Also test for gcov linking path, or add SKIP_COV option.
 if (LCOV_PATH)
     message(STATUS "Found LCOV: ${LCOV_PATH}")
     target_link_libraries(caosdb gcov)
@@ -111,5 +110,7 @@ if (LCOV_PATH)
     set_target_properties(ccaosdb PROPERTIES
         COMPILE_FLAGS "${TARGET_CCAOSDB_COMPILE_FLAGS}")
 else ()
-    message(WARNING "Could not generate code coverage report. Please install lcov.")
+    if (NOT SKIP_CODE_COVERAGE)
+        message(WARNING "Could not generate code coverage report. Please install lcov.")
+    endif()
 endif ()