diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7b8f856968e7ab06625cf9273e4fcad2baeb4d67..ca161b8e284abfc345505dfaa6e1f17b6e5563fa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,11 +32,5 @@ add_subdirectory(dumux)
 add_subdirectory(test EXCLUDE_FROM_ALL)
 add_subdirectory(tutorial EXCLUDE_FROM_ALL)
 
-if(DUNE_COMMON_VERSION VERSION_LESS 2.5)
-  # de-activate testing the DUNE way
-  # now ctest (aka make test) does not build the tests
-  set(DUNE_TEST_MAGIC OFF)
-endif()
-
 # finalize the dune project, e.g. generating config.h etc.
 finalize_dune_project(GENERATE_CONFIG_H_CMAKE)
diff --git a/cmake/modules/DumuxTestMacros.cmake b/cmake/modules/DumuxTestMacros.cmake
index a2bc9efc0e19632104c1975edb32ae98ad127e8b..af926f43750c3263d209c75b42a7517b2fbff6b1 100644
--- a/cmake/modules/DumuxTestMacros.cmake
+++ b/cmake/modules/DumuxTestMacros.cmake
@@ -46,22 +46,12 @@ macro(add_dumux_test dumux_test dumux_test_executable dumux_test_executable_sour
   endif()
 
   # add test
-  if(DUNE_COMMON_VERSION VERSION_LESS 2.5)
-    # add test
-    add_test(${dumux_test} ${dumux_test_args})
-
-    # return code 77 should be interpreted as skipped test
-    set_tests_properties(${dumux_test} PROPERTIES SKIP_RETURN_CODE 77)
-    # tests always require the executable to run
-    set_tests_properties(${dumux_test} PROPERTIES REQUIRED_FILES ${dumux_test_executable})
-  else()
-    list(GET dumux_test_args 0 dumux_test_command)
-    list(REMOVE_AT dumux_test_args 0)
-    dune_add_test(NAME ${dumux_test}
-                  TARGET ${dumux_test_executable}
-                  COMMAND ${dumux_test_command}
-                  CMD_ARGS ${dumux_test_args})
-    # tests always require the executable to run
-    set_tests_properties(${dumux_test} PROPERTIES REQUIRED_FILES ${dumux_test_executable})
-  endif()
+  list(GET dumux_test_args 0 dumux_test_command)
+  list(REMOVE_AT dumux_test_args 0)
+  dune_add_test(NAME ${dumux_test}
+                TARGET ${dumux_test_executable}
+                COMMAND ${dumux_test_command}
+                CMD_ARGS ${dumux_test_args})
+  # tests always require the executable to run
+  set_tests_properties(${dumux_test} PROPERTIES REQUIRED_FILES ${dumux_test_executable})
 endmacro()
diff --git a/cmake/modules/FindGLPK.cmake b/cmake/modules/FindGLPK.cmake
index ad2590240afcbb35a9d612cb340ecdb2803bbc4f..7e1e38da14d946f1a0e4f1254fcfd98044181c98 100644
--- a/cmake/modules/FindGLPK.cmake
+++ b/cmake/modules/FindGLPK.cmake
@@ -98,3 +98,7 @@ if(GLPK_FOUND)
                               LIBRARIES "${GLPK_DUNE_LIBRARIES}"
                               INCLUDE_DIRS "${GLPK_INCLUDE_DIRS}")
 endif()
+
+# text for feature summary
+set_package_properties("GLPK" PROPERTIES
+  DESCRIPTION "GNU Linear Programming Kit")
diff --git a/cmake/modules/FindGstat.cmake b/cmake/modules/FindGstat.cmake
index a98409f219907a7e2171753a6fd91f74637cd1af..a19d48171782a0a37b497a2828f750ea61ce9a7c 100644
--- a/cmake/modules/FindGstat.cmake
+++ b/cmake/modules/FindGstat.cmake
@@ -43,3 +43,8 @@ find_package_handle_standard_args(
 # set macros for config.h
 set(HAVE_GSTAT ${GSTAT_FOUND})
 set(GSTAT_EXECUTABLE ${GSTAT_EXECUTABLE})
+
+# text for feature summary
+set_package_properties("Gstat" PROPERTIES
+  DESCRIPTION "Geostatistic library"
+  PURPOSE "Generate random permeability and porosity fields")
diff --git a/cmake/modules/FindNLOPT.cmake b/cmake/modules/FindNLOPT.cmake
index 2dfb17210fc2e21eb1f9ab89e8e0efe195172524..7163be70bb950a44aa08b807b38fa4a24453f9eb 100644
--- a/cmake/modules/FindNLOPT.cmake
+++ b/cmake/modules/FindNLOPT.cmake
@@ -99,3 +99,7 @@ if(NLOPT_FOUND)
                               LIBRARIES "${NLOPT_DUNE_LIBRARIES}"
                               INCLUDE_DIRS "${NLOPT_INCLUDE_DIRS}")
 endif()
+
+# text for feature summary
+set_package_properties("NLOPT" PROPERTIES
+  DESCRIPTION "Library for nonlinear optimization")
diff --git a/cmake/modules/FindPVPython.cmake b/cmake/modules/FindPVPython.cmake
index 0419008b4ec6009adf468d3b12e8d4b0826108e0..1ed2751f02013650f40aa2efd05b6e6d3821cd8e 100644
--- a/cmake/modules/FindPVPython.cmake
+++ b/cmake/modules/FindPVPython.cmake
@@ -43,3 +43,8 @@ find_package_handle_standard_args(
 # set macros for config.h
 set(HAVE_PVPYTHON ${PVPYTHON_FOUND})
 set(PVPYTHON_EXECUTABLE ${PVPYTHON_EXECUTABLE})
+
+# text for feature summary
+set_package_properties("PVPython" PROPERTIES
+  DESCRIPTION "ParaView python client"
+  PURPOSE "Extract data over line or time in post-processing")
diff --git a/cmake/modules/FindValgrind.cmake b/cmake/modules/FindValgrind.cmake
index 11f1d0288b5c9f6a5c9fb9e4f5705fa0ce82c54a..e7251791b3a7d879217c98c71571bdcdfa1c3928 100644
--- a/cmake/modules/FindValgrind.cmake
+++ b/cmake/modules/FindValgrind.cmake
@@ -38,3 +38,8 @@ set(HAVE_VALGRIND ${Valgrind_FOUND})
 if(Valgrind_FOUND)
   dune_register_package_flags(INCLUDE_DIRS "${VALGRIND_INCLUDE_DIR}")
 endif()
+
+# text for feature summary
+set_package_properties("Valgrind" PROPERTIES
+  DESCRIPTION "Memory debugging, memory leak detection, profiling"
+  PURPOSE "Identify undefined variables with Memcheck")
diff --git a/test/mixeddimension/embedded/1p2c_richards2c/CMakeLists.txt b/test/mixeddimension/embedded/1p2c_richards2c/CMakeLists.txt
index 2f3d88dca591403f53e61e9864a3ca909698bce1..59a872ee9c6306fa85ba0603e1caa4e8b0b16976 100644
--- a/test/mixeddimension/embedded/1p2c_richards2c/CMakeLists.txt
+++ b/test/mixeddimension/embedded/1p2c_richards2c/CMakeLists.txt
@@ -1,10 +1,13 @@
-add_dumux_test(test_rosi2c test_rosi2c test_rosi2c.cc
-               ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-                 --script fuzzy
-                 --files ${CMAKE_SOURCE_DIR}/test/references/rosi2c-root-reference.vtp
-                         ${CMAKE_CURRENT_BINARY_DIR}/rosi2c-root-00010.vtp
-                         ${CMAKE_SOURCE_DIR}/test/references/rosi2c-soil-reference.vtu
-                         ${CMAKE_CURRENT_BINARY_DIR}/rosi2c-soil-00010.vtu
-                 --command "${CMAKE_CURRENT_BINARY_DIR}/test_rosi2c -TimeManager.TEnd 86400")
+dune_add_test(
+  NAME test_rosi2c
+  SOURCES test_rosi2c.cc
+  COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+  CMD_ARGS --script fuzzy
+           --files ${CMAKE_SOURCE_DIR}/test/references/rosi2c-root-reference.vtp
+                   ${CMAKE_CURRENT_BINARY_DIR}/rosi2c-root-00010.vtp
+                   ${CMAKE_SOURCE_DIR}/test/references/rosi2c-soil-reference.vtu
+                   ${CMAKE_CURRENT_BINARY_DIR}/rosi2c-soil-00010.vtu
+            --command "${CMAKE_CURRENT_BINARY_DIR}/test_rosi2c -TimeManager.TEnd 86400"
+  )
 
 dune_symlink_to_source_files(FILES "grids" "test_rosi2c.input")
diff --git a/test/porousmediumflow/3pwateroil/implicit/CMakeLists.txt b/test/porousmediumflow/3pwateroil/implicit/CMakeLists.txt
index c94eb9b1458a2c5e8b915e0d7a1a4fc4b8afe92f..b0428e98ea7e02a51fb186faaf2262a2e8ceaf2e 100644
--- a/test/porousmediumflow/3pwateroil/implicit/CMakeLists.txt
+++ b/test/porousmediumflow/3pwateroil/implicit/CMakeLists.txt
@@ -1,12 +1,14 @@
 add_input_file_links()
 
-add_dumux_test(test_box3pwateroil test_box3pwateroil test_box3pwateroil.cc
-               ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-                 --script fuzzy
-                 --files ${CMAKE_SOURCE_DIR}/test/references/3pwateroilbox-reference.vtu
-                         ${CMAKE_CURRENT_BINARY_DIR}/sagd-00011.vtu
-                 --command "${CMAKE_CURRENT_BINARY_DIR}/test_box3pwateroil")
-
+dune_add_test(
+  NAME test_box3pwateroil
+  SOURCES test_box3pwateroil.cc
+  COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+  CMD_ARGS --script fuzzy
+           --files ${CMAKE_SOURCE_DIR}/test/references/3pwateroilbox-reference.vtu
+                   ${CMAKE_CURRENT_BINARY_DIR}/sagd-00011.vtu
+           --command "${CMAKE_CURRENT_BINARY_DIR}/test_box3pwateroil"
+  )
 
 #install sources
 install(FILES