diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index b817c9a8949e73deb4dc3165e5f6e438f1aef3ab..394e2c339c952c745e90aead7587631b2d3404f3 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -39,15 +39,8 @@ enable_testing()
 #parse catch tests
 ParseAndAddCatchTests(unit_tests)
 
-if (${PASTIS_HAS_MPI})
-  add_test(mpi_unit_tests ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 3 "--oversubscribe"
-    ${MPIEXEC_PREFLAGS}
-    ${PASTIS_BINARY_DIR}/mpi_unit_tests
-    ${MPIEXEC_POSTFLAGS})
-else()
-  add_test(mpi_unit_tests ${PASTIS_BINARY_DIR}/mpi_unit_tests)
+if(${PASTIS_HAS_MPI})
+set(OptionalCatchTestLauncher ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 3 --oversubscribe --path ${PASTIS_BINARY_DIR})
 endif()
-
-# Should patch ParseAndAddCatchTests macro to allow additional command parameter
-# to launch tests
-set_tests_properties("mpi_unit_tests" PROPERTIES FAIL_REGULAR_EXPRESSION "No tests ran" LABELS "mpi")
+ParseAndAddCatchTests(mpi_unit_tests)
+unset(OptionalCatchTestLauncher)