diff --git a/test/porousmediumflow/richards/implicit/lens/CMakeLists.txt b/test/porousmediumflow/richards/implicit/lens/CMakeLists.txt
index b4238ba97b4f3352b9f21fe2853d466f10109e7a..79ad4cb188e73e32a18b3dc3ec0e75fd91ecef1c 100644
--- a/test/porousmediumflow/richards/implicit/lens/CMakeLists.txt
+++ b/test/porousmediumflow/richards/implicit/lens/CMakeLists.txt
@@ -4,6 +4,9 @@ add_input_file_links(FILES params.input)
 add_executable(test_richards_lens_tpfa EXCLUDE_FROM_ALL main.cc)
 target_compile_definitions(test_richards_lens_tpfa PUBLIC TYPETAG=RichardsLensCC PUBLIC DIFFMETHOD=DiffMethod::numeric)
 
+add_executable(test_richards_lens_mpfa EXCLUDE_FROM_ALL main.cc)
+target_compile_definitions(test_richards_lens_mpfa PUBLIC TYPETAG=RichardsLensCCMpfa PUBLIC DIFFMETHOD=DiffMethod::numeric)
+
 add_executable(test_richards_lens_box EXCLUDE_FROM_ALL main.cc)
 target_compile_definitions(test_richards_lens_box PUBLIC TYPETAG=RichardsLensBox PUBLIC DIFFMETHOD=DiffMethod::numeric)
 
@@ -69,6 +72,18 @@ dune_add_test(NAME test_richards_lens_tpfa_parallel_yasp
                               ${CMAKE_CURRENT_BINARY_DIR}/s0002-test_richards_lens_tpfa_parallel_yasp-00007.pvtu
                       --command "${MPIEXEC} -np 2 ${CMAKE_CURRENT_BINARY_DIR}/test_richards_lens_tpfa params.input -Problem.Name test_richards_lens_tpfa_parallel_yasp -Grid.Overlap 1")
 
+dune_add_test(NAME test_richards_lens_mpfa_parallel_yasp
+              TARGET test_richards_lens_mpfa
+              LABELS porousmediumflow richards parallel
+              CMAKE_GUARD MPI_FOUND
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy --zeroThreshold {"process rank":100}
+                      --files ${CMAKE_SOURCE_DIR}/test/references/test_richards_lens_tpfa_parallel-reference.vtu
+                              ${CMAKE_CURRENT_BINARY_DIR}/s0002-p0000-test_richards_lens_mpfa_parallel_yasp-00007.vtu
+                              ${CMAKE_SOURCE_DIR}/test/references/test_richards_lens_tpfa-reference.vtu
+                              ${CMAKE_CURRENT_BINARY_DIR}/s0002-test_richards_lens_mpfa_parallel_yasp-00007.pvtu
+                      --command "${MPIEXEC} -np 2 ${CMAKE_CURRENT_BINARY_DIR}/test_richards_lens_mpfa params.input -Problem.Name test_richards_lens_mpfa_parallel_yasp -Grid.Overlap 1")
+
 # TODO: there is a small difference because of the precision loss when writing and reading to and from vtk with single precision
 # This is why we need a bit higher saturation threshold since pc-sw is very sensitive to pressure for saturations close to 0
 dune_add_test(NAME test_richards_lens_tpfa_parallel_yasp_restart
diff --git a/test/porousmediumflow/richards/implicit/lens/problem.hh b/test/porousmediumflow/richards/implicit/lens/problem.hh
index 779e80aeebeb016f909bac024223930769b3a019..4300dbb94e7c7d2d926c55a31f73b0cfdb7e339b 100644
--- a/test/porousmediumflow/richards/implicit/lens/problem.hh
+++ b/test/porousmediumflow/richards/implicit/lens/problem.hh
@@ -36,6 +36,7 @@
 #endif
 
 #include <dumux/discretization/cctpfa.hh>
+#include <dumux/discretization/ccmpfa.hh>
 #include <dumux/discretization/box.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -57,6 +58,7 @@ namespace TTag {
 struct RichardsLens { using InheritsFrom = std::tuple<Richards>; };
 struct RichardsLensBox { using InheritsFrom = std::tuple<RichardsLens, BoxModel>; };
 struct RichardsLensCC { using InheritsFrom = std::tuple<RichardsLens, CCTpfaModel>; };
+struct RichardsLensCCMpfa { using InheritsFrom = std::tuple<RichardsLens, CCMpfaModel>; };
 } // end namespace TTag
 
 #ifndef GRIDTYPE