diff --git a/testing/adios2/engine/EngineWriteReadTest.cpp b/testing/adios2/engine/EngineWriteReadTest.cpp
index f3b3c4421bd518ab417df904c020fdbf07a33a32..b6ced9212d9528bb0c03850148b1a8e723440197 100644
--- a/testing/adios2/engine/EngineWriteReadTest.cpp
+++ b/testing/adios2/engine/EngineWriteReadTest.cpp
@@ -16,20 +16,6 @@ EngineWriteReadTestBase::EngineWriteReadTestBase(std::string engineName,
 {
 }
 
-void EngineWriteReadTestBase::SetUpTestCase()
-{
-#ifdef ADIOS2_HAVE_MPI
-    MPI_Init(nullptr, nullptr);
-#endif
-}
-
-void EngineWriteReadTestBase::TearDownTestCase()
-{
-#ifdef ADIOS2_HAVE_MPI
-    MPI_Finalize();
-#endif
-}
-
 void EngineWriteReadTestBase::SetUp()
 {
     m_adios = std::unique_ptr<adios::ADIOS>(
@@ -160,3 +146,23 @@ void EngineWriteRead2D4x2Test::Declare()
     auto &var_r32 = m_adios->DefineVariable<float>("r32", adios::Dims{4, 2});
     auto &var_r64 = m_adios->DefineVariable<double>("r64", adios::Dims{4, 2});
 }
+
+//******************************************************************************
+// main
+//******************************************************************************
+
+int main(int argc, char **argv)
+{
+#ifdef ADIOS2_HAVE_MPI
+    MPI_Init(nullptr, nullptr);
+#endif
+
+    ::testing::InitGoogleTest(&argc, argv);
+    int result = RUN_ALL_TESTS();
+
+#ifdef ADIOS2_HAVE_MPI
+    MPI_Finalize();
+#endif
+
+    return result;
+}
diff --git a/testing/adios2/engine/EngineWriteReadTest.h b/testing/adios2/engine/EngineWriteReadTest.h
index d704f28757a5e33cad5dc2804cfc1a2ee102fe90..1027930546cb5fffc4c011b5a622a2b2968bd9d7 100644
--- a/testing/adios2/engine/EngineWriteReadTest.h
+++ b/testing/adios2/engine/EngineWriteReadTest.h
@@ -22,14 +22,11 @@ protected:
     adios::Method *m_Method;
     std::shared_ptr<adios::Engine> m_Engine;
 
-    // Handle MPI things if necessary
-    static void SetUpTestCase();
-    static void TearDownTestCase();
-
     // Create and destroy the manager class
     virtual void SetUp();
     virtual void TearDown();
 
+    // Open and close files
     virtual void SetUpWrite();
     virtual void TearDownWrite();
 
diff --git a/testing/adios2/engine/adios1/CMakeLists.txt b/testing/adios2/engine/adios1/CMakeLists.txt
index eefb49a4a89fa43751aff22751e9b53ecce5f820..db9c2d1c941198e4ac23dcd2bbac573688d6f44a 100644
--- a/testing/adios2/engine/adios1/CMakeLists.txt
+++ b/testing/adios2/engine/adios1/CMakeLists.txt
@@ -7,5 +7,5 @@ add_executable(TestADIOS1WriteRead
   TestADIOS1WriteRead.cpp
   ../EngineWriteReadTest.cpp
 )
-target_link_libraries(TestADIOS1WriteRead adios2 gtest gtest_main)
+target_link_libraries(TestADIOS1WriteRead adios2 gtest)
 add_test(NAME adios2::engine::adios1::write_read COMMAND TestADIOS1WriteRead)
diff --git a/testing/adios2/engine/bp/CMakeLists.txt b/testing/adios2/engine/bp/CMakeLists.txt
index 9a436eacb810dd9d0df39343197f9044b74329f2..8fd95e9a3268b3bdec403edb38b554e1b3083821 100644
--- a/testing/adios2/engine/bp/CMakeLists.txt
+++ b/testing/adios2/engine/bp/CMakeLists.txt
@@ -7,5 +7,5 @@ add_executable(TestBPWriteRead
   TestBPWriteRead.cpp
   ../EngineWriteReadTest.cpp
 )
-target_link_libraries(TestBPWriteRead adios2 gtest gtest_main)
+target_link_libraries(TestBPWriteRead adios2 gtest)
 add_test(NAME adios2::engine::bp::write_read COMMAND TestBPWriteRead)
diff --git a/testing/adios2/engine/hdf5/CMakeLists.txt b/testing/adios2/engine/hdf5/CMakeLists.txt
index 3bf185beb6f56e11294b3b33b44499c426e6c187..ec623c6db5a9b83baad0a94e85f77ea4af04691e 100644
--- a/testing/adios2/engine/hdf5/CMakeLists.txt
+++ b/testing/adios2/engine/hdf5/CMakeLists.txt
@@ -7,5 +7,5 @@ add_executable(TestHDF5WriteRead
   TestHDF5WriteRead.cpp
   ../EngineWriteReadTest.cpp
 )
-target_link_libraries(TestHDF5WriteRead adios2 gtest gtest_main)
+target_link_libraries(TestHDF5WriteRead adios2 gtest)
 add_test(NAME adios2::engine::hdf5::write_read COMMAND TestHDF5WriteRead)
diff --git a/testing/adios2/interface/TestADIOSInterfaceWrite.cpp b/testing/adios2/interface/TestADIOSInterfaceWrite.cpp
index 3816e04be1ee3126afc69357f24fdcb5341cd7bc..abf1e9f0b0ee72b34a6812a3d1424ffd0d0600e7 100644
--- a/testing/adios2/interface/TestADIOSInterfaceWrite.cpp
+++ b/testing/adios2/interface/TestADIOSInterfaceWrite.cpp
@@ -352,3 +352,19 @@ TEST_F(ADIOSInterfaceWriteTest, DefineVarDouble2x5)
     EXPECT_EQ(var_r64.m_Name, "r64");
     EXPECT_EQ(var_r64.m_Type, "double");
 }
+
+int main(int argc, char **argv)
+{
+#ifdef ADIOS2_HAVE_MPI
+    MPI_Init(nullptr, nullptr);
+#endif
+
+    ::testing::InitGoogleTest(&argc, argv);
+    int result = RUN_ALL_TESTS();
+
+#ifdef ADIOS2_HAVE_MPI
+    MPI_Finalize();
+#endif
+
+    return result;
+}