public virtual void TearDown()
 {
     RepositoryCache.Clear();
     foreach (Repository r in toClose)
     {
         r.Close();
     }
     toClose.Clear();
     // Since memory mapping is controlled by the GC we need to
     // tell it this is a good time to clean up and unlock
     // memory mapped files.
     //
     if (useMMAP)
     {
         System.GC.Collect();
     }
     RecursiveDelete(TestId(), trash, false, true);
 }