diff --git a/tests/mpi_test_main.cpp b/tests/mpi_test_main.cpp
index 45b733f94d6877a5c6792ed7439965a00e2aa428..87953af0c1d98a6b099b8d99606d8f4eaa686a40 100644
--- a/tests/mpi_test_main.cpp
+++ b/tests/mpi_test_main.cpp
@@ -3,6 +3,7 @@
 
 #include <Kokkos_Core.hpp>
 
+#include <algebra/PETScWrapper.hpp>
 #include <mesh/DiamondDualConnectivityManager.hpp>
 #include <mesh/DiamondDualMeshManager.hpp>
 #include <mesh/MeshDataManager.hpp>
@@ -21,6 +22,8 @@ main(int argc, char* argv[])
   parallel::Messenger::create(argc, argv);
   Kokkos::initialize({4, -1, -1, true});
 
+  PETScWrapper::initialize(argc, argv);
+
   const std::string output_base_name{"mpi_test_rank_"};
 
   std::filesystem::path parallel_output(std::string{PUGS_BINARY_DIR});
@@ -86,6 +89,8 @@ main(int argc, char* argv[])
     }
   }
 
+  PETScWrapper::finalize();
+
   Kokkos::finalize();
   parallel::Messenger::destroy();
 
diff --git a/tests/test_main.cpp b/tests/test_main.cpp
index 7ab5a66fb05301c3e9e41e4140a898bda96cac76..74f695682992ad951c3b2c33e3c8c0f6b53b657a 100644
--- a/tests/test_main.cpp
+++ b/tests/test_main.cpp
@@ -3,6 +3,7 @@
 
 #include <Kokkos_Core.hpp>
 
+#include <algebra/PETScWrapper.hpp>
 #include <mesh/DiamondDualConnectivityManager.hpp>
 #include <mesh/DiamondDualMeshManager.hpp>
 #include <mesh/MeshDataManager.hpp>
@@ -17,6 +18,8 @@ main(int argc, char* argv[])
   parallel::Messenger::create(argc, argv);
   Kokkos::initialize({4, -1, -1, true});
 
+  PETScWrapper::initialize(argc, argv);
+
   Catch::Session session;
   int result = session.applyCommandLine(argc, argv);
 
@@ -46,6 +49,8 @@ main(int argc, char* argv[])
     }
   }
 
+  PETScWrapper::finalize();
+
   Kokkos::finalize();
   parallel::Messenger::destroy();