diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
index 7ed0bbbc8764e841205b5b9ef0e33903b47fd433..17740cd0790c2f94fefa2b5b829804973c3ce46e 100644
--- a/testing/CMakeLists.txt
+++ b/testing/CMakeLists.txt
@@ -5,4 +5,9 @@
 
 include(GoogleTest)
 
+if(ADIOS2_HAVE_MPI)
+  set(MPIEXEC_COMMAND
+    ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS}
+  )
+endif()
 add_subdirectory(adios2)
diff --git a/testing/adios2/bindings/C/CMakeLists.txt b/testing/adios2/bindings/C/CMakeLists.txt
index 57f251f96df84ee80935b69f28e81eebd8c127ce..3e8f220feac0fc9dac0bb5618eb671dd49b386fc 100644
--- a/testing/adios2/bindings/C/CMakeLists.txt
+++ b/testing/adios2/bindings/C/CMakeLists.txt
@@ -7,11 +7,11 @@ add_executable(TestBPWriteTypes_c TestBPWriteTypes.cpp)
 target_link_libraries(TestBPWriteTypes_c adios2 gtest)
 
 if(ADIOS2_HAVE_MPI)
-  target_include_directories(TestBPWriteTypes_c PRIVATE ${MPI_C_INCLUDE_PATH})
-  target_link_libraries(TestBPWriteTypes_c ${MPI_C_LIBRARIES})
+  target_link_libraries(TestBPWriteTypes_c MPI::MPI_C)
   set(extra_test_args
     EXEC_WRAPPER
-    ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS})
+    ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS}
+  )
 endif()
 
 gtest_add_tests(TARGET TestBPWriteTypes_c ${extra_test_args})
diff --git a/testing/adios2/bindings/fortran/CMakeLists.txt b/testing/adios2/bindings/fortran/CMakeLists.txt
index 02aec3e50b04d9e4233d958eb32ccf98067f25a0..17fa101f2c8b19163970cd5932a7e20cc0cd11cb 100644
--- a/testing/adios2/bindings/fortran/CMakeLists.txt
+++ b/testing/adios2/bindings/fortran/CMakeLists.txt
@@ -4,20 +4,18 @@
 #------------------------------------------------------------------------------#
 
 add_executable(TestBPWriteTypes_f SmallTestData_mod.f90)
+target_link_libraries(TestBPWriteTypes_f adios2_f)
 
 if(ADIOS2_HAVE_MPI)
   target_sources(TestBPWriteTypes_f PRIVATE TestBPWriteTypes.f90)
-  target_include_directories(TestBPWriteTypes_f
-                                        PRIVATE ${MPI_Fortran_INCLUDE_PATH}
-                                                ${MPI_C_INCLUDE_PATH})
-  target_link_libraries(TestBPWriteTypes_f PRIVATE ${MPI_Fortran_LIBRARIES}
-                                                   ${MPI_C_LIBRARIES})
+  target_link_libraries(TestBPWriteTypes_f MPI::MPI_Fortran)
   set(test_parameters
-    ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS})
+    ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS}
+  )
 else()
   target_sources(TestBPWriteTypes_f PRIVATE TestBPWriteTypes_nompi.f90)
 endif()
 
-target_link_libraries(TestBPWriteTypes_f PRIVATE adios2_f)
-
-add_test(NAME BPWrite_f COMMAND ${test_parameters} $<TARGET_FILE:TestBPWriteTypes_f>)
+add_test(NAME BPWrite_f
+  COMMAND ${test_parameters} $<TARGET_FILE:TestBPWriteTypes_f>
+)
diff --git a/testing/adios2/engine/adios1/CMakeLists.txt b/testing/adios2/engine/adios1/CMakeLists.txt
index ace06e557d1705e87449bc73972562005a035a1c..c8630f44e7f1c805be6e0113956b56a445e0495a 100644
--- a/testing/adios2/engine/adios1/CMakeLists.txt
+++ b/testing/adios2/engine/adios1/CMakeLists.txt
@@ -6,12 +6,8 @@
 add_executable(TestADIOS1WriteRead TestADIOS1WriteRead.cpp)
 target_link_libraries(TestADIOS1WriteRead adios2 gtest adios1::adios)
 if(ADIOS2_HAVE_MPI)
-  target_include_directories(TestADIOS1WriteRead PRIVATE ${MPI_C_INCLUDE_PATH})
-  target_link_libraries(TestADIOS1WriteRead ${MPI_C_LIBRARIES})
-  set(extra_test_args
-    EXEC_WRAPPER
-      ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS}
-  )
+  target_link_libraries(TestADIOS1WriteRead MPI::MPI_C)
+  set(extra_test_args EXEC_WRAPPER ${MPIEXEC_COMMAND})
 endif()
 
 gtest_add_tests(TARGET TestADIOS1WriteRead ${extra_test_args})
diff --git a/testing/adios2/engine/bp/CMakeLists.txt b/testing/adios2/engine/bp/CMakeLists.txt
index fb032ba79213616b4dd555c61952bfdbe812eb84..dce3a6fb100d3f0d951b732c09f00981aaf832bb 100644
--- a/testing/adios2/engine/bp/CMakeLists.txt
+++ b/testing/adios2/engine/bp/CMakeLists.txt
@@ -24,25 +24,13 @@ if (ADIOS2_HAVE_ADIOS1)
   )
 
   if(ADIOS2_HAVE_MPI)
-    target_include_directories(TestBPWriteRead PRIVATE ${MPI_C_INCLUDE_PATH})
-    target_link_libraries(TestBPWriteRead ${MPI_C_LIBRARIES})
+    target_link_libraries(TestBPWriteRead MPI::MPI_C)
+    target_link_libraries(TestBPWriteReadAttributes MPI::MPI_C)
+    target_link_libraries(TestBPWriteReadstdio MPI::MPI_C)
+    target_link_libraries(TestBPWriteReadfstream MPI::MPI_C)
+    target_link_libraries(TestBPWriteProfilingJSON MPI::MPI_C)
 
-    target_include_directories(TestBPWriteReadAttributes PRIVATE ${MPI_C_INCLUDE_PATH})
-    target_link_libraries(TestBPWriteReadAttributes ${MPI_C_LIBRARIES})
-
-    target_include_directories(TestBPWriteReadstdio PRIVATE ${MPI_C_INCLUDE_PATH})
-    target_link_libraries(TestBPWriteReadstdio ${MPI_C_LIBRARIES})
-
-    target_include_directories(TestBPWriteReadfstream PRIVATE ${MPI_C_INCLUDE_PATH})
-    target_link_libraries(TestBPWriteReadfstream ${MPI_C_LIBRARIES})
-
-    target_include_directories(TestBPWriteProfilingJSON PRIVATE ${MPI_C_INCLUDE_PATH})
-    target_link_libraries(TestBPWriteProfilingJSON ${MPI_C_LIBRARIES})
-
-    set(extra_test_args
-      EXEC_WRAPPER
-        ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS}
-    )
+    set(extra_test_args EXEC_WRAPPER ${MPIEXEC_COMMAND})
   endif()
 
   gtest_add_tests(TARGET TestBPWriteRead ${extra_test_args})
diff --git a/testing/adios2/engine/hdf5/CMakeLists.txt b/testing/adios2/engine/hdf5/CMakeLists.txt
index 85a20cb648ae68c523f1ffe7c8b5a5a3873ba6b8..4d6d857acba3d5b55cd4dc22459cf9c5a880eed4 100644
--- a/testing/adios2/engine/hdf5/CMakeLists.txt
+++ b/testing/adios2/engine/hdf5/CMakeLists.txt
@@ -14,12 +14,8 @@ endif()
 target_link_libraries(TestHDF5WriteRead adios2 gtest ${HDF5_C_LIBRARIES})
 
 if(ADIOS2_HAVE_MPI)
-  target_include_directories(TestHDF5WriteRead PRIVATE ${MPI_C_INCLUDE_PATH})
-  target_link_libraries(TestHDF5WriteRead ${MPI_C_LIBRARIES})
-  set(extra_test_args
-    EXEC_WRAPPER
-      ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS}
-  )
+  target_link_libraries(TestHDF5WriteRead MPI::MPI_C)
+  set(extra_test_args EXEC_WRAPPER ${MPIEXEC_COMMAND})
 endif()
 
 gtest_add_tests(TARGET TestHDF5WriteRead ${extra_test_args})
diff --git a/testing/adios2/interface/CMakeLists.txt b/testing/adios2/interface/CMakeLists.txt
index 986133796b28597df33ed0591e9feab92cee400b..c1986d21769e0a1ac10d698d49f18ac88cb5670e 100644
--- a/testing/adios2/interface/CMakeLists.txt
+++ b/testing/adios2/interface/CMakeLists.txt
@@ -13,19 +13,11 @@ add_executable(TestADIOSDefineAttribute TestADIOSDefineAttribute.cpp)
 target_link_libraries(TestADIOSDefineAttribute adios2 gtest gtest_main)
 
 if(ADIOS2_HAVE_MPI)
-  target_include_directories(TestADIOSInterfaceWrite PRIVATE ${MPI_C_INCLUDE_PATH})
-  target_link_libraries(TestADIOSInterfaceWrite ${MPI_C_LIBRARIES})
+  target_link_libraries(TestADIOSInterfaceWrite MPI::MPI_C)
+  target_link_libraries(TestADIOSDefineVariable MPI::MPI_C)
+  target_link_libraries(TestADIOSDefineAttribute MPI::MPI_C)
 
-  target_include_directories(TestADIOSDefineVariable PRIVATE ${MPI_C_INCLUDE_PATH})
-  target_link_libraries(TestADIOSDefineVariable ${MPI_C_LIBRARIES})
-
-  target_include_directories(TestADIOSDefineAttribute PRIVATE ${MPI_C_INCLUDE_PATH})
-  target_link_libraries(TestADIOSDefineAttribute ${MPI_C_LIBRARIES})
-
-  set(extra_test_args
-    EXEC_WRAPPER
-      ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS}
-  )
+  set(extra_test_args EXEC_WRAPPER ${MPIEXEC_COMMAND})
 endif()
 
 gtest_add_tests(TARGET TestADIOSInterfaceWrite ${extra_test_args})