diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4c1eb38aaf565867766481359433cd6e6f60a3c8..185a11fe51fb5aead4d2b46859e7f6041f1db5c2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -92,18 +92,13 @@ add_subdirectory(ThirdParty/Fit)
 add_subdirectory(Fit)
 add_subdirectory(ThirdParty/Core)
 add_subdirectory(Core)
-if(UNITTESTS)
-    add_subdirectory(Tests/UnitTests/Core)
-    add_subdirectory(Tests/UnitTests/Fit)
-endif()
 if(BORNAGAIN_GUI)
     include(SearchQt)
     add_subdirectory(ThirdParty/GUI)
     add_subdirectory(GUI)
-    if(UNITTESTS)
-        add_subdirectory(Tests/UnitTests/GUI)
-    endif()
 endif()
+
+add_subdirectory(Tests/UnitTests)
 add_subdirectory(Tests/Functional) # functional tests (ctest)
 
 add_subdirectory(cmake/bornagain) # trick to print an after-install message
diff --git a/Tests/UnitTests/CMakeLists.txt b/Tests/UnitTests/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0ac9fc5affade33bddc27fca7fff32eacf9a6263
--- /dev/null
+++ b/Tests/UnitTests/CMakeLists.txt
@@ -0,0 +1,12 @@
+############################################################################
+# Unit tests
+############################################################################
+
+if(UNITTESTS)
+    add_subdirectory(Core)
+    add_subdirectory(Fit)
+
+    if(BORNAGAIN_GUI)
+        add_subdirectory(GUI)
+    endif()
+endif()