diff --git a/test/docs_unittest.py b/test/docs_unittest.py
index 6e66748c7143e2ed53cf75306088cfb75483bb1f..a3cb2b7a83081c42116e61050c102f1331c9abfa 100755
--- a/test/docs_unittest.py
+++ b/test/docs_unittest.py
@@ -149,4 +149,4 @@ class TestManpages(unittest.TestCase):
 
 
 if __name__ == "__main__":
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.bdev_unittest.py b/test/ganeti.bdev_unittest.py
index eaf4c0768a3eccb75acd9facc7b5108d1024a335..19e1b8a53e314a98cf428760a9194f6ee25a5d8a 100755
--- a/test/ganeti.bdev_unittest.py
+++ b/test/ganeti.bdev_unittest.py
@@ -25,10 +25,11 @@
 import os
 import unittest
 
-import testutils
 from ganeti import bdev
 from ganeti import errors
 
+import testutils
+
 
 class TestDRBD8Runner(testutils.GanetiTestCase):
   """Testing case for DRBD8"""
@@ -189,4 +190,4 @@ class TestDRBD8Status(testutils.GanetiTestCase):
                       stats.is_disk_uptodate)
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.cli_unittest.py b/test/ganeti.cli_unittest.py
index cf3810d4099a122f968977830ddc0736b2e61f99..5fb652eb4a89fdc436713aee4797d2dd58749ce6 100755
--- a/test/ganeti.cli_unittest.py
+++ b/test/ganeti.cli_unittest.py
@@ -26,10 +26,12 @@ from cStringIO import StringIO
 
 import ganeti
 import testutils
+
 from ganeti import constants
 from ganeti import cli
 from ganeti.errors import OpPrereqError, ParameterError
 
+
 class TestParseTimespec(unittest.TestCase):
   """Testing case for ParseTimespec"""
 
@@ -123,4 +125,4 @@ class TestToStream(unittest.TestCase):
       self.failUnlessEqual(buf.getvalue(), "foo a b\n")
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.cmdlib_unittest.py b/test/ganeti.cmdlib_unittest.py
index 2955b3dbd6da72bdcbffeaace1b874109cb6f1bc..726b941b3e0705055167636ab8f1d1f4073a4c8d 100755
--- a/test/ganeti.cmdlib_unittest.py
+++ b/test/ganeti.cmdlib_unittest.py
@@ -30,6 +30,8 @@ import Queue
 from ganeti import cmdlib
 from ganeti import errors
 
+import testutils
+
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.confd_client_unittest.py b/test/ganeti.confd_client_unittest.py
index e3f966da24d3a99e2ef27b0ce2958618a877f726..d116483fef7dbfa92bb2c27fc0d0c2ec0f3730dd 100755
--- a/test/ganeti.confd_client_unittest.py
+++ b/test/ganeti.confd_client_unittest.py
@@ -30,6 +30,8 @@ from ganeti import errors
 
 import ganeti.confd.client
 
+import testutils
+
 
 class ResettableMock(object):
   def __init__(self, *args, **kwargs):
@@ -182,4 +184,4 @@ class TestClient(unittest.TestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.config_unittest.py b/test/ganeti.config_unittest.py
index ba669d1f6c8612159692fcbdbcc9fc0b1673f5bb..77d7f395c2d33afe3218d1f1712df05216ae5ba0 100755
--- a/test/ganeti.config_unittest.py
+++ b/test/ganeti.config_unittest.py
@@ -36,6 +36,8 @@ from ganeti import errors
 from ganeti import objects
 from ganeti import utils
 
+import testutils
+
 
 class TestConfigRunner(unittest.TestCase):
   """Testing case for HooksRunner"""
@@ -176,4 +178,4 @@ class TestConfigRunner(unittest.TestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.constants_unittest.py b/test/ganeti.constants_unittest.py
index ddc6814ddf66b10a6eed3d01a2e570161e7be824..219afee8459d1c1857d16abeca89fe27873dbea1 100755
--- a/test/ganeti.constants_unittest.py
+++ b/test/ganeti.constants_unittest.py
@@ -27,6 +27,8 @@ import re
 
 from ganeti import constants
 
+import testutils
+
 
 class TestConstants(unittest.TestCase):
   """Constants tests"""
@@ -99,4 +101,4 @@ class TestConfdConstants(unittest.TestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.hooks_unittest.py b/test/ganeti.hooks_unittest.py
index 55fa72126e260f0124421c5ca507ab29a037e3b2..594c321bf2398a7082cca5b0aaa9d325b20051f2 100755
--- a/test/ganeti.hooks_unittest.py
+++ b/test/ganeti.hooks_unittest.py
@@ -39,11 +39,15 @@ from ganeti.constants import HKR_SUCCESS, HKR_FAIL, HKR_SKIP
 
 from mocks import FakeConfig, FakeProc, FakeContext
 
+import testutils
+
+
 class FakeLU(cmdlib.LogicalUnit):
   HPATH = "test"
   def BuildHooksEnv(self):
     return {}, ["localhost"], ["localhost"]
 
+
 class TestHooksRunner(unittest.TestCase):
   """Testing case for HooksRunner"""
   def setUp(self):
@@ -266,5 +270,6 @@ class TestHooksMaster(unittest.TestCase):
     for phase in (constants.HOOKS_PHASE_PRE, constants.HOOKS_PHASE_POST):
       hm.RunPhase(phase)
 
+
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.http_unittest.py b/test/ganeti.http_unittest.py
index 6e4f9dc0b19d672e4de39922802565655800f098..606fc741689002b854b669fa4dea9e35b7ccf235 100755
--- a/test/ganeti.http_unittest.py
+++ b/test/ganeti.http_unittest.py
@@ -32,6 +32,8 @@ import ganeti.http.server
 import ganeti.http.client
 import ganeti.http.auth
 
+import testutils
+
 
 class TestStartLines(unittest.TestCase):
   """Test cases for start line classes"""
@@ -163,4 +165,4 @@ class TestAuth(unittest.TestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.locking_unittest.py b/test/ganeti.locking_unittest.py
index 094de02982e9fd6283484e6335164813cfece253..4da57e79481c46178d780819ac9dac19897ace3f 100755
--- a/test/ganeti.locking_unittest.py
+++ b/test/ganeti.locking_unittest.py
@@ -31,6 +31,8 @@ import threading
 from ganeti import locking
 from ganeti import errors
 
+import testutils
+
 
 # This is used to test the ssynchronize decorator.
 # Since it's passed as input to a decorator it must be declared as a global.
@@ -1405,6 +1407,4 @@ class TestGanetiLockManager(_ThreadedTestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
-  #suite = unittest.TestLoader().loadTestsFromTestCase(TestSharedLock)
-  #unittest.TextTestRunner(verbosity=2).run(suite)
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.mcpu_unittest.py b/test/ganeti.mcpu_unittest.py
index a60ebac21e74753eadb464691c2c8b0bef03740e..80d4088f30f6147145016133e613b0dc1498df07 100755
--- a/test/ganeti.mcpu_unittest.py
+++ b/test/ganeti.mcpu_unittest.py
@@ -26,6 +26,8 @@ import unittest
 
 from ganeti import mcpu
 
+import testutils
+
 
 class TestLockAttemptTimeoutStrategy(unittest.TestCase):
   def testConstants(self):
@@ -58,4 +60,4 @@ class TestLockAttemptTimeoutStrategy(unittest.TestCase):
 
 
 if __name__ == "__main__":
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.objects_unittest.py b/test/ganeti.objects_unittest.py
index fdea939c71f16b65d3e49db886c594edb156f8d1..982f042f04db058ca08ef3e9c47cac99f69ea26f 100755
--- a/test/ganeti.objects_unittest.py
+++ b/test/ganeti.objects_unittest.py
@@ -26,9 +26,13 @@ import unittest
 
 from ganeti import objects
 
+import testutils
+
+
 class SimpleObject(objects.ConfigObject):
   __slots__ = ['a', 'b']
 
+
 class TestDictState(unittest.TestCase):
   """Simple dict tansformation tests"""
 
@@ -45,4 +49,4 @@ class TestDictState(unittest.TestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.rapi.resources_unittest.py b/test/ganeti.rapi.resources_unittest.py
index 11d34500f684c4e667778178344d171020a8d0cf..70f68b5b172412953c266e53fbd20b20e97ec020 100755
--- a/test/ganeti.rapi.resources_unittest.py
+++ b/test/ganeti.rapi.resources_unittest.py
@@ -31,6 +31,8 @@ from ganeti import http
 from ganeti.rapi import connector
 from ganeti.rapi import rlib2
 
+import testutils
+
 
 class MapperTests(unittest.TestCase):
   """Tests for remote API URI mapper."""
@@ -82,4 +84,4 @@ class R_RootTests(unittest.TestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.serializer_unittest.py b/test/ganeti.serializer_unittest.py
index 9b8a97e6d712e389bd434eccd302a36e16c7e1f8..cb275d53f6186410e7aab13b198fcd466299d32d 100755
--- a/test/ganeti.serializer_unittest.py
+++ b/test/ganeti.serializer_unittest.py
@@ -80,4 +80,4 @@ class TestSerializer(testutils.GanetiTestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.ssh_unittest.py b/test/ganeti.ssh_unittest.py
index d9999294702895765808c25dbc36c5b4418c7afd..5afd59052c74278feef480dab55b38a9f678990e 100755
--- a/test/ganeti.ssh_unittest.py
+++ b/test/ganeti.ssh_unittest.py
@@ -49,4 +49,4 @@ class TestKnownHosts(testutils.GanetiTestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.utils_unittest.py b/test/ganeti.utils_unittest.py
index 255f9d6526593495441059d404280f1c821a8bcb..62f48051f103be8d6ad829e2dda675cb8b531867 100755
--- a/test/ganeti.utils_unittest.py
+++ b/test/ganeti.utils_unittest.py
@@ -1043,4 +1043,4 @@ class TestFormatTime(unittest.TestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/ganeti.workerpool_unittest.py b/test/ganeti.workerpool_unittest.py
index 75827418dd574b5319cc359bc3a0f55464cdc62d..a91858eb21c3a5bfea7f0424a59a400c016ffc73 100755
--- a/test/ganeti.workerpool_unittest.py
+++ b/test/ganeti.workerpool_unittest.py
@@ -29,6 +29,8 @@ import zlib
 
 from ganeti import workerpool
 
+import testutils
+
 
 class DummyBaseWorker(workerpool.BaseWorker):
   def RunTask(self, text):
@@ -136,4 +138,4 @@ class TestWorkerpool(unittest.TestCase):
 
 
 if __name__ == '__main__':
-  unittest.main()
+  testutils.GanetiTestProgram()
diff --git a/test/testutils.py b/test/testutils.py
index 5e36a175460dcdfb3cce5448c7b9f2c7590d099b..fddeda73d1a16bf0781c05091132557586a71bbf 100644
--- a/test/testutils.py
+++ b/test/testutils.py
@@ -25,6 +25,7 @@ import os
 import stat
 import tempfile
 import unittest
+import logging
 
 from ganeti import utils
 
@@ -33,6 +34,15 @@ def GetSourceDir():
   return os.environ.get("TOP_SRCDIR", ".")
 
 
+class GanetiTestProgram(unittest.TestProgram):
+  def runTests(self):
+    """
+
+    """
+    logging.basicConfig(filename=os.devnull)
+    return unittest.TestProgram.runTests(self)
+
+
 class GanetiTestCase(unittest.TestCase):
   """Helper class for unittesting.