diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f274d315a8fc17e0b6dfc923b9c4c24980e5de21..c797e7d1fd1be5b832b746cc86de56c31184b828 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -192,10 +192,10 @@ gcc_9_unit_tests:
   needs: ["gcc_9"]
 
   before_script:
-    - export VF_UNITTESTS=$(find build_gcc9 -name basicsTests)
+    - cd $CI_PROJECT_DIR/build
 
   script:
-    - $VF_UNITTESTS
+    - ctest
 
 ###############################################################################
 msvc_16_unit_tests:
@@ -211,7 +211,7 @@ msvc_16_unit_tests:
     - cd $CI_PROJECT_DIR/build
 
   script:
-    - .\bin\Release\basicsTests.exe
+    - ctest
 
 ###############################################################################
 gcc_9_python_bindings_test:
diff --git a/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake
index 62388cdf333aac80464e49af0edd4facdfceb6de..dfef8f98478eb90f5f8b6760f52b61b169e19e77 100644
--- a/CMake/VirtualFluidsMacros.cmake
+++ b/CMake/VirtualFluidsMacros.cmake
@@ -286,6 +286,9 @@ function(vf_add_tests)
     # link googlemock
     linkGMOCK()
 
+    # add the target to ctest
+    gtest_add_tests(TARGET ${library_test_name})
+
 endfunction()
 
 #################################################################################
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d3e51f8dc4285ca3db7c524fc4600579f1f8fba7..e3e0ea5a9198fb4d241a4ee65a4fe48abaaa70c9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -79,6 +79,12 @@ ENDIF()
 #################################################################################
 #  COMMON LIBRARIES
 #################################################################################
+if(BUILD_VF_UNIT_TESTS)
+    add_subdirectory(${VF_THIRD_DIR}/googletest)
+    include(GoogleTest)
+    enable_testing()
+endif()
+
 if(BUILD_USE_OPENMP)
     find_package(OpenMP REQUIRED)
 endif()
@@ -90,6 +96,8 @@ add_subdirectory(src/basics)
 add_subdirectory(src/lbm)
 add_subdirectory(src/lbmApp)
 
+
+
 #################################################################################
 #  VIRTUAL FLUIDS CPU / GPU
 #################################################################################
@@ -124,12 +132,3 @@ if(BUILD_VF_GPU)
 
     include (gpu.cmake)
 endif()
-
-#################################################################################
-#  3rd Party Libraries
-#################################################################################
-if(BUILD_VF_UNIT_TESTS)
-    if(NOT BUILD_NUMERIC_TESTS) # in this case googletest is already included.
-        add_subdirectory(${VF_THIRD_DIR}/googletest)
-    endif()
-endif()
diff --git a/gpu.cmake b/gpu.cmake
index 6bdff52053d9b4ad047ca8015980a08e9e2f3a79..3eb34b8fe0bb5a36c125a1bc8573e8976dcf9d22 100644
--- a/gpu.cmake
+++ b/gpu.cmake
@@ -120,6 +120,10 @@ if(BUILD_NUMERIC_TESTS)
         LIST(APPEND VF_COMPILER_DEFINITION "PATH_NUMERICAL_TESTS=${PATH_NUMERICAL_TESTS}")
     endif()
 
+    if(NOT BUILD_VF_UNIT_TESTS) # in this case googletest is already included.
+        add_subdirectory(${VF_THIRD_DIR}/googletest)
+    endif()
+
     add_subdirectory(3rdParty/fftw/fftw-3.3.7)
     add_subdirectory(3rdParty/googletest)
     add_subdirectory(apps/gpu/tests/NumericalTests)
diff --git a/src/lbm/CalcMacTests.cpp b/src/lbm/CalcMacTests.cpp
index eeaeb993e9e481c8d0a0ac945cf8a5b4fd8e9450..0bead1fef1448106a7fe63e532fc7830c5fdbf24 100644
--- a/src/lbm/CalcMacTests.cpp
+++ b/src/lbm/CalcMacTests.cpp
@@ -2,11 +2,11 @@
 
 #include "CalcMac.h"
 
-TEST(AAA,BBB)
+TEST(CalcMacTest, calcDensity)
 {
     real f[27] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
 
     double density = LBM::getDensity(f);
 
-    ASSERT_THAT(density, testing::DoubleEq(1));
+    ASSERT_THAT(density, testing::DoubleEq(27));
 }
\ No newline at end of file