diff --git a/Lib/tkinter/test/runtktests.py b/Lib/tkinter/test/runtktests.py
index 3d3868f..7067594 100644
--- a/Lib/tkinter/test/runtktests.py
+++ b/Lib/tkinter/test/runtktests.py
@@ -19,9 +19,13 @@
             return True
     return False
 
-def get_tests_modules(basepath=this_dir_path, gui=True):
+def get_tests_modules(basepath=this_dir_path, gui=True, packages=None):
     """This will import and yield modules whose names start with test_
-    and are inside packages found in the path starting at basepath."""
+    and are inside packages found in the path starting at basepath.
+
+    If packages is specified it should contain package names that
+    want their tests collected.
+    """
     py_ext = '.py'
 
     for dirpath, dirnames, filenames in os.walk(basepath):
@@ -31,6 +35,9 @@
 
         if is_package(dirpath) and filenames:
             pkg_name = dirpath[len(basepath) + len(os.sep):].replace('/', '.')
+            if packages and pkg_name not in packages:
+                continue
+
             filenames = filter(
                     lambda x: x.startswith('test_') and x.endswith(py_ext),
                     filenames)
@@ -48,7 +55,7 @@
                     if gui:
                         raise
 
-def get_tests(text=True, gui=True):
+def get_tests(text=True, gui=True, packages=None):
     """Yield all the tests in the modules found by get_tests_modules.
 
     If nogui is True, only tests that do not require a GUI will be
@@ -58,7 +65,7 @@
         attrs.append('tests_nogui')
     if gui:
         attrs.append('tests_gui')
-    for module in get_tests_modules(gui=gui):
+    for module in get_tests_modules(gui=gui, packages=packages):
         for attr in attrs:
             for test in getattr(module, attr, ()):
                 yield test
diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py
index e92d2fa..48cf614 100644
--- a/Lib/tkinter/test/test_ttk/test_widgets.py
+++ b/Lib/tkinter/test/test_ttk/test_widgets.py
@@ -708,10 +708,13 @@
 class TreeviewTest(unittest.TestCase):
 
     def setUp(self):
-        self.tv = ttk.Treeview()
+        self.root = support.get_tk_root()
+        self.tv = ttk.Treeview(self.root)
 
     def tearDown(self):
         self.tv.destroy()
+        self.root.update_idletasks()
+        self.root.destroy()
 
 
     def test_bbox(self):
