diff --git a/ProcessLib/BoundaryCondition/CMakeLists.txt b/ProcessLib/BoundaryCondition/CMakeLists.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/ProcessLib/CMakeLists.txt b/ProcessLib/CMakeLists.txt
index 2737edafb88f63e44e77a4abaf6cddd378076134..75fe93f556bd2edd9d6df38fca053e54e6e48ba6 100644
--- a/ProcessLib/CMakeLists.txt
+++ b/ProcessLib/CMakeLists.txt
@@ -1,68 +1,34 @@
 include(${PROJECT_SOURCE_DIR}/scripts/cmake/OGSEnabledElements.cmake)
 
-# Source files
 APPEND_SOURCE_FILES(SOURCES)
-
-add_subdirectory(BoundaryCondition)
 APPEND_SOURCE_FILES(SOURCES BoundaryCondition)
-
+APPEND_SOURCE_FILES(SOURCES CalculateSurfaceFlux)
+APPEND_SOURCE_FILES(SOURCES ComponentTransport)
 APPEND_SOURCE_FILES(SOURCES Deformation)
-
-add_subdirectory(Parameter)
-APPEND_SOURCE_FILES(SOURCES Parameter)
-
-add_subdirectory(GroundwaterFlow)
 APPEND_SOURCE_FILES(SOURCES GroundwaterFlow)
-
-add_subdirectory(LiquidFlow)
-APPEND_SOURCE_FILES(SOURCES LiquidFlow)
-add_subdirectory(HydroMechanics)
+APPEND_SOURCE_FILES(SOURCES HeatConduction)
+APPEND_SOURCE_FILES(SOURCES HT)
 APPEND_SOURCE_FILES(SOURCES HydroMechanics)
-
-add_subdirectory(TwoPhaseFlowWithPP)
-APPEND_SOURCE_FILES(SOURCES TwoPhaseFlowWithPP)
-add_subdirectory(TwoPhaseFlowWithPrho)
-APPEND_SOURCE_FILES(SOURCES TwoPhaseFlowWithPrho)
-
-add_subdirectory(SmallDeformation)
-APPEND_SOURCE_FILES(SOURCES SmallDeformation)
-
-add_subdirectory(LIE/SmallDeformation)
-add_subdirectory(LIE/HydroMechanics)
 APPEND_SOURCE_FILES(SOURCES LIE/BoundaryCondition)
 APPEND_SOURCE_FILES(SOURCES LIE/Common)
 APPEND_SOURCE_FILES(SOURCES LIE/HydroMechanics)
 APPEND_SOURCE_FILES(SOURCES LIE/HydroMechanics/LocalAssembler)
 APPEND_SOURCE_FILES(SOURCES LIE/SmallDeformation)
 APPEND_SOURCE_FILES(SOURCES LIE/SmallDeformation/LocalAssembler)
-
-add_subdirectory(TES)
-APPEND_SOURCE_FILES(SOURCES TES)
-
-add_subdirectory(HeatConduction)
-APPEND_SOURCE_FILES(SOURCES HeatConduction)
-
-add_subdirectory(RichardsFlow)
+APPEND_SOURCE_FILES(SOURCES LiquidFlow)
+APPEND_SOURCE_FILES(SOURCES Parameter)
 APPEND_SOURCE_FILES(SOURCES RichardsFlow)
-
-add_subdirectory(ComponentTransport)
-APPEND_SOURCE_FILES(SOURCES ComponentTransport)
-
-add_subdirectory(HT)
-APPEND_SOURCE_FILES(SOURCES HT)
-
-add_subdirectory(CalculateSurfaceFlux)
-APPEND_SOURCE_FILES(SOURCES CalculateSurfaceFlux)
-
+APPEND_SOURCE_FILES(SOURCES SmallDeformation)
+APPEND_SOURCE_FILES(SOURCES TES)
+APPEND_SOURCE_FILES(SOURCES TwoPhaseFlowWithPP)
+APPEND_SOURCE_FILES(SOURCES TwoPhaseFlowWithPrho)
 APPEND_SOURCE_FILES(SOURCES Utils)
 
 add_library(ProcessLib ${SOURCES})
 
 target_link_libraries(ProcessLib
-    MaterialLib
-    MeshGeoToolsLib
-    MeshLib
-    NumLib # for shape matrices
+    PUBLIC BaseLib GeoLib MaterialLib MathLib MeshLib NumLib logog
+    PRIVATE MeshGeoToolsLib
 )
 
 ADD_VTK_DEPENDENCY(ProcessLib)
@@ -80,3 +46,18 @@ endif()
 if(OGS_USE_PCH)
     cotire(ProcessLib)
 endif()
+
+### Tests ###
+include(ComponentTransport/Tests.cmake)
+include(GroundwaterFlow/Tests.cmake)
+include(HeatConduction/Tests.cmake)
+include(HT/Tests.cmake)
+include(HydroMechanics/Tests.cmake)
+include(LIE/HydroMechanics/Tests.cmake)
+include(LIE/SmallDeformation/Tests.cmake)
+include(LiquidFlow/Tests.cmake)
+include(RichardsFlow/Tests.cmake)
+include(SmallDeformation/Tests.cmake)
+include(TES/Tests.cmake)
+include(TwoPhaseFlowWithPP/Tests.cmake)
+include(TwoPhaseFlowWithPrho/Tests.cmake)
diff --git a/ProcessLib/CalculateSurfaceFlux/CMakeLists.txt b/ProcessLib/CalculateSurfaceFlux/CMakeLists.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/ProcessLib/ComponentTransport/CMakeLists.txt b/ProcessLib/ComponentTransport/Tests.cmake
similarity index 100%
rename from ProcessLib/ComponentTransport/CMakeLists.txt
rename to ProcessLib/ComponentTransport/Tests.cmake
diff --git a/ProcessLib/GroundwaterFlow/CMakeLists.txt b/ProcessLib/GroundwaterFlow/Tests.cmake
similarity index 100%
rename from ProcessLib/GroundwaterFlow/CMakeLists.txt
rename to ProcessLib/GroundwaterFlow/Tests.cmake
diff --git a/ProcessLib/HT/CMakeLists.txt b/ProcessLib/HT/Tests.cmake
similarity index 100%
rename from ProcessLib/HT/CMakeLists.txt
rename to ProcessLib/HT/Tests.cmake
diff --git a/ProcessLib/HeatConduction/CMakeLists.txt b/ProcessLib/HeatConduction/Tests.cmake
similarity index 100%
rename from ProcessLib/HeatConduction/CMakeLists.txt
rename to ProcessLib/HeatConduction/Tests.cmake
diff --git a/ProcessLib/HydroMechanics/CMakeLists.txt b/ProcessLib/HydroMechanics/Tests.cmake
similarity index 100%
rename from ProcessLib/HydroMechanics/CMakeLists.txt
rename to ProcessLib/HydroMechanics/Tests.cmake
diff --git a/ProcessLib/LIE/HydroMechanics/CMakeLists.txt b/ProcessLib/LIE/HydroMechanics/Tests.cmake
similarity index 100%
rename from ProcessLib/LIE/HydroMechanics/CMakeLists.txt
rename to ProcessLib/LIE/HydroMechanics/Tests.cmake
diff --git a/ProcessLib/LIE/SmallDeformation/CMakeLists.txt b/ProcessLib/LIE/SmallDeformation/Tests.cmake
similarity index 100%
rename from ProcessLib/LIE/SmallDeformation/CMakeLists.txt
rename to ProcessLib/LIE/SmallDeformation/Tests.cmake
diff --git a/ProcessLib/LiquidFlow/CMakeLists.txt b/ProcessLib/LiquidFlow/Tests.cmake
similarity index 100%
rename from ProcessLib/LiquidFlow/CMakeLists.txt
rename to ProcessLib/LiquidFlow/Tests.cmake
diff --git a/ProcessLib/Parameter/CMakeLists.txt b/ProcessLib/Parameter/CMakeLists.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/ProcessLib/RichardsFlow/CMakeLists.txt b/ProcessLib/RichardsFlow/Tests.cmake
similarity index 100%
rename from ProcessLib/RichardsFlow/CMakeLists.txt
rename to ProcessLib/RichardsFlow/Tests.cmake
diff --git a/ProcessLib/SmallDeformation/CMakeLists.txt b/ProcessLib/SmallDeformation/Tests.cmake
similarity index 100%
rename from ProcessLib/SmallDeformation/CMakeLists.txt
rename to ProcessLib/SmallDeformation/Tests.cmake
diff --git a/ProcessLib/TES/CMakeLists.txt b/ProcessLib/TES/Tests.cmake
similarity index 100%
rename from ProcessLib/TES/CMakeLists.txt
rename to ProcessLib/TES/Tests.cmake
diff --git a/ProcessLib/TwoPhaseFlowWithPP/CMakeLists.txt b/ProcessLib/TwoPhaseFlowWithPP/Tests.cmake
similarity index 100%
rename from ProcessLib/TwoPhaseFlowWithPP/CMakeLists.txt
rename to ProcessLib/TwoPhaseFlowWithPP/Tests.cmake
diff --git a/ProcessLib/TwoPhaseFlowWithPrho/CMakeLists.txt b/ProcessLib/TwoPhaseFlowWithPrho/Tests.cmake
similarity index 100%
rename from ProcessLib/TwoPhaseFlowWithPrho/CMakeLists.txt
rename to ProcessLib/TwoPhaseFlowWithPrho/Tests.cmake