diff --git a/src/ZODB/tests/testblob.py b/src/ZODB/tests/testblob.py
index ee3746856eb87af29436d6ee94b1c5b14bca2fb9..57ee934b3dcfee66067f1f42bbf3cb002d1d31b7 100644
--- a/src/ZODB/tests/testblob.py
+++ b/src/ZODB/tests/testblob.py
@@ -95,13 +95,8 @@ class ZODBBlobConfigTest(ConfigTestBase):
                           </zodb>
                           """)
 
-class BlobTestBase(ZODB.tests.StorageTestBase.StorageTestBase):
-
-    def setUp(self):
-        ZODB.tests.StorageTestBase.StorageTestBase.setUp(self)
-        self._storage = self.create_storage()
 
-class BlobCloneTests(BlobTestBase):
+class BlobCloneTests(ZODB.tests.util.TestCase):
 
     def testDeepCopyCanInvalidate(self):
         """
@@ -109,7 +104,9 @@ class BlobCloneTests(BlobTestBase):
         readers and writers values in cloned objects (see
         http://mail.zope.org/pipermail/zodb-dev/2008-August/012054.html)
         """
-        database = DB(self._storage)
+        import ZODB.MappingStorage
+        database = DB(ZODB.blob.BlobStorage(
+            'blobs', ZODB.MappingStorage.MappingStorage()))
         connection = database.open()
         root = connection.root()
         transaction.begin()
@@ -131,6 +128,12 @@ class BlobCloneTests(BlobTestBase):
         # tearDown
         database.close()
 
+class BlobTestBase(ZODB.tests.StorageTestBase.StorageTestBase):
+
+    def setUp(self):
+        ZODB.tests.StorageTestBase.StorageTestBase.setUp(self)
+        self._storage = self.create_storage()
+
 
 class BlobUndoTests(BlobTestBase):
 
@@ -483,8 +486,8 @@ def loadblob_tmpstore():
 
     We can access the blob correctly:
 
-    >>> tmpstore.loadBlob(blob_oid, tid) # doctest: +ELLIPSIS
-    '.../0x00/0x00/0x00/0x00/0x00/0x00/0x00/0x01/0x...blob'
+    >>> tmpstore.loadBlob(blob_oid, tid) == blob_storage.loadBlob(blob_oid, tid)
+    True
 
     Clean up:
 
@@ -548,7 +551,9 @@ def setUpBlobAdaptedFileStorage(test):
 
     test.globs['create_storage'] = create_storage
 
-def storage_reusable_suite(prefix, factory):
+def storage_reusable_suite(prefix, factory,
+                           test_blob_storage_recovery=True,
+                           ):
     """Return a test suite for a generic IBlobStorage.
 
     Pass a factory taking a name and a blob directory name.
@@ -583,18 +588,25 @@ def storage_reusable_suite(prefix, factory):
             blob_dir = '%s.bobs' % name
         return factory(name, blob_dir)
 
-    for class_ in (BlobCloneTests, BlobUndoTests, RecoveryBlobStorage):
+    def add_test_based_on_test_class(class_):
         new_class = class_.__class__(
             prefix+class_.__name__, (class_, ),
             dict(create_storage=create_storage),
             )
         suite.addTest(unittest.makeSuite(new_class))
 
+    if test_blob_storage_recovery:
+        add_test_based_on_test_class(RecoveryBlobStorage)
+    add_test_based_on_test_class(BlobUndoTests)
+
+    suite.layer = ZODB.tests.util.MininalTestLayer(prefix+'BlobTests')
+
     return suite
 
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTest(unittest.makeSuite(ZODBBlobConfigTest))
+    suite.addTest(unittest.makeSuite(BlobCloneTests))
     suite.addTest(doctest.DocFileSuite(
         "blob_basic.txt",
         "blob_packing.txt", "blob_consume.txt",