SVN: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/ Made unit tests be run from a normal layer.

Christian Theune <[email protected]>
Newsgroups gmane.comp.web.zope.zope3.cvs
Message-ID <20080504220143.DBBD6399DF__26151.6134757132$1209938561$gmane$org@mail.zope.org>
Log message for revision 86428:
  Made unit tests be run from a normal layer.
  

Changed:
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/find.py
  A   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/layer.py
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/listing.py
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/options.py
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-colors.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-coverage.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-debugging.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-edge-cases.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-errors.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-gc.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-layers-api.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-layers.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-leaks.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-profiling.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-progress.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-repeat.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-simple.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-test-selection.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-verbose.txt
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-wo-source.txt

-=-
Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py	2008-05-04 22:01:43 UTC (rev 86428)
@@ -20,6 +20,9 @@
 import zope.testing.testrunner.feature
 
 
+UNITTEST_LAYER = 'zope.testing.testrunner.layer.UnitTests'
+
+
 class Filter(zope.testing.testrunner.feature.Feature):
     """Filters and orders all tests registered until now."""
 
@@ -29,7 +32,7 @@
         layers = self.runner.tests_by_layer_name
         options = self.runner.options
 
-        if 'unit' in layers:
+        if UNITTEST_LAYER in layers:
             # We start out assuming unit tests should run and look for reasons
             # why they shouldn't be run.
             should_run = True
@@ -37,7 +40,7 @@
                 if options.layer:
                     should_run = False
                     for pat in options.layer:
-                        if pat('unit'):
+                        if pat(UNITTEST_LAYER):
                             should_run = True
                             break
                 else:
@@ -46,7 +49,7 @@
                 should_run = False
 
             if not should_run:
-                layers.pop('unit')
+                layers.pop(UNITTEST_LAYER)
 
         if self.runner.options.resume_layer is not None:
             for name in list(layers):

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/find.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/find.py	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/find.py	2008-05-04 22:01:43 UTC (rev 86428)
@@ -20,7 +20,9 @@
 import os
 import unittest
 import sys
+
 import zope.testing.testrunner.feature
+import zope.testing.testrunner.layer
 
 identifier = re.compile(r'[_a-zA-Z]\w*$').match
 
@@ -258,7 +260,8 @@
     return sys.modules[name]
 
 
-def tests_from_suite(suite, options, dlevel=1, dlayer='unit'):
+def tests_from_suite(suite, options, dlevel=1,
+                     dlayer=zope.testing.testrunner.layer.UnitTests):
     """Returns a sequence of (test, layer_name)
 
     The tree of suites is recursively visited, with the most specific

Added: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/layer.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/layer.py	                        (rev 0)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/layer.py	2008-05-04 22:01:43 UTC (rev 86428)
@@ -0,0 +1,21 @@
+##############################################################################
+#
+# Copyright (c) 2004-2008 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Layer definitions
+
+$Id: __init__.py 86223 2008-05-03 14:36:04Z ctheune $
+"""
+
+
+class UnitTests(object):
+    """A layer for gathering all unit tests."""


Property changes on: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/layer.py
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/listing.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/listing.py	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/listing.py	2008-05-04 22:01:43 UTC (rev 86428)
@@ -33,7 +33,5 @@
 
     def report(self):
         layers = self.runner.tests_by_layer_name
-        if 'unit' in layers:
-            self.runner.options.output.list_of_tests(layers['unit'], 'unit')
         for layer_name, layer, tests in self.runner.ordered_layers():
             self.runner.options.output.list_of_tests(tests, layer_name)

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/options.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/options.py	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/options.py	2008-05-04 22:01:43 UTC (rev 86428)
@@ -105,8 +105,8 @@
 extension of Python regexp notation, a leading "!" is stripped and
 causes the sense of the remaining regexp to be negated (so "!bc"
 matches any string that does not match "bc", and vice versa).  The
-layer named 'unit' is reserved for unit tests, however, take note of
-the --unit and non-unit options.
+layer named 'zope.testing.testrunner.layer.UnitTests' is reserved for
+unit tests, however, take note of the --unit and non-unit options.
 """)
 
 searching.add_option(
@@ -578,7 +578,8 @@
         options.unit = options.non_unit = False
 
     if options.unit:
-        options.layer = ['unit']
+        # XXX Argh.
+        options.layer = ['zope.testing.testrunner.layer.UnitTests']
     if options.layer:
         options.layer = map(compile_filter, options.layer)
 

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py	2008-05-04 22:01:43 UTC (rev 86428)
@@ -104,8 +104,7 @@
 
     def ordered_layers(self):
         layer_names = dict([(layer_from_name(layer_name), layer_name)
-                            for layer_name in self.tests_by_layer_name
-                            if layer_name != 'unit'])
+                            for layer_name in self.tests_by_layer_name])
         for layer in order_by_bases(layer_names):
             layer_name = layer_names[layer]
             yield layer_name, layer, self.tests_by_layer_name[layer_name]
@@ -204,20 +203,7 @@
         Returns True if there where failures or False if all tests passed.
 
         """
-        if 'unit' in self.tests_by_layer_name:
-            tests = self.tests_by_layer_name.pop('unit')
-            self.options.output.info("Running unit tests:")
-            for feature in self.features:
-                feature.layer_setup('unit')
-            try:
-                self.ran += run_tests(self.options, tests, 'unit',
-                                      self.failures, self.errors)
-            except EndRun:
-                self.failed = True
-                return
-
         setup_layers = {}
-
         layers_to_run = list(self.ordered_layers())
 
         for layer_name, layer, tests in layers_to_run:
@@ -499,12 +485,9 @@
         self.options = options
         # Calculate our list of relevant layers we need to call testSetUp
         # and testTearDown on.
-        if layer_name != 'unit':
-            layers = []
-            gather_layers(layer_from_name(layer_name), layers)
-            self.layers = order_by_bases(layers)
-        else:
-            self.layers = []
+        layers = []
+        gather_layers(layer_from_name(layer_name), layers)
+        self.layers = order_by_bases(layers)
         count = 0
         for test in tests:
             count += test.countTestCases()
@@ -589,8 +572,6 @@
             self.options.output.test_threads(test, new_threads)
 
 
-
-
 def layer_from_name(layer_name):
     """Return the layer for the corresponding layer_name by discovering
        and importing the necessary module if necessary.

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-colors.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-colors.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-colors.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -72,7 +72,38 @@
 
     >>> sys.argv = 'test -c --tests-pattern ^sampletests(f|_e|_f)?$ '.split()
     >>> testrunner.run(defaults)
-    {normal}Running unit tests:{normal}
+    {normal}Running samplelayers.Layer1 tests:{normal}
+      Set up samplelayers.Layer1 in {green}0.000{normal} seconds.
+    {normal}  Ran {green}9{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.001{normal} seconds.{normal}
+    {normal}Running samplelayers.Layer11 tests:{normal}
+      Set up samplelayers.Layer11 in {green}0.000{normal} seconds.
+    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.007{normal} seconds.{normal}
+    {normal}Running samplelayers.Layer111 tests:{normal}
+      Set up samplelayers.Layerx in {green}0.000{normal} seconds.
+      Set up samplelayers.Layer111 in {green}0.000{normal} seconds.
+    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.008{normal} seconds.{normal}
+    {normal}Running samplelayers.Layer112 tests:{normal}
+      Tear down samplelayers.Layer111 in {green}0.000{normal} seconds.
+      Set up samplelayers.Layer112 in {green}0.000{normal} seconds.
+    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.008{normal} seconds.{normal}
+    {normal}Running samplelayers.Layer12 tests:{normal}
+      Tear down samplelayers.Layer112 in {green}0.000{normal} seconds.
+      Tear down samplelayers.Layerx in {green}0.000{normal} seconds.
+      Tear down samplelayers.Layer11 in {green}0.000{normal} seconds.
+      Set up samplelayers.Layer12 in {green}0.000{normal} seconds.
+    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.007{normal} seconds.{normal}
+    {normal}Running samplelayers.Layer121 tests:{normal}
+      Set up samplelayers.Layer121 in {green}0.000{normal} seconds.
+    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.007{normal} seconds.{normal}
+    {normal}Running samplelayers.Layer122 tests:{normal}
+      Tear down samplelayers.Layer121 in {green}0.000{normal} seconds.
+      Set up samplelayers.Layer122 in {green}0.000{normal} seconds.
+    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.008{normal} seconds.{normal}
+    {normal}Running zope.testing.testrunner.layer.UnitTests tests:{normal}
+      Tear down samplelayers.Layer122 in {green}0.000{normal} seconds.
+      Tear down samplelayers.Layer12 in {green}0.000{normal} seconds.
+      Tear down samplelayers.Layer1 in {green}0.000{normal} seconds.
+    Set up zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
     <BLANKLINE>
     <BLANKLINE>
     {boldred}Failure in test eek (sample2.sampletests_e){normal}
@@ -142,37 +173,8 @@
     {red}AssertionError: 1 != 0{normal}
     <BLANKLINE>
     {normal}  Ran {green}200{normal} tests with {boldred}3{normal} failures and {boldred}1{normal} errors in {green}0.045{normal} seconds.{normal}
-    {normal}Running samplelayers.Layer1 tests:{normal}
-      Set up samplelayers.Layer1 in {green}0.000{normal} seconds.
-    {normal}  Ran {green}9{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.001{normal} seconds.{normal}
-    {normal}Running samplelayers.Layer11 tests:{normal}
-      Set up samplelayers.Layer11 in {green}0.000{normal} seconds.
-    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.007{normal} seconds.{normal}
-    {normal}Running samplelayers.Layer111 tests:{normal}
-      Set up samplelayers.Layerx in {green}0.000{normal} seconds.
-      Set up samplelayers.Layer111 in {green}0.000{normal} seconds.
-    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.008{normal} seconds.{normal}
-    {normal}Running samplelayers.Layer112 tests:{normal}
-      Tear down samplelayers.Layer111 in {green}0.000{normal} seconds.
-      Set up samplelayers.Layer112 in {green}0.000{normal} seconds.
-    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.008{normal} seconds.{normal}
-    {normal}Running samplelayers.Layer12 tests:{normal}
-      Tear down samplelayers.Layer112 in {green}0.000{normal} seconds.
-      Tear down samplelayers.Layerx in {green}0.000{normal} seconds.
-      Tear down samplelayers.Layer11 in {green}0.000{normal} seconds.
-      Set up samplelayers.Layer12 in {green}0.000{normal} seconds.
-    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.007{normal} seconds.{normal}
-    {normal}Running samplelayers.Layer121 tests:{normal}
-      Set up samplelayers.Layer121 in {green}0.000{normal} seconds.
-    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.007{normal} seconds.{normal}
-    {normal}Running samplelayers.Layer122 tests:{normal}
-      Tear down samplelayers.Layer121 in {green}0.000{normal} seconds.
-      Set up samplelayers.Layer122 in {green}0.000{normal} seconds.
-    {normal}  Ran {green}34{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}0.008{normal} seconds.{normal}
     {normal}Tearing down left over layers:{normal}
-      Tear down samplelayers.Layer122 in {green}0.000{normal} seconds.
-      Tear down samplelayers.Layer12 in {green}0.000{normal} seconds.
-      Tear down samplelayers.Layer1 in {green}0.000{normal} seconds.
+    Tear down zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
     {normal}Total: {green}413{normal} tests, {boldred}3{normal} failures, {boldred}1{normal} errors in {green}0.023{normal} seconds.{normal}
     True
 
@@ -185,7 +187,8 @@
 
     >>> sys.argv = 'test --tests-pattern ^pledge$ -c'.split()
     >>> _ = testrunner.run(defaults)
-    {normal}Running unit tests:{normal}
+    {normal}Running zope.testing.testrunner.layer.UnitTests tests:{normal}
+      Set up zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
     <BLANKLINE>
     <BLANKLINE>
     {boldred}Failure in test pledge (pledge){normal}
@@ -208,13 +211,16 @@
     {red}    It's soils, minerals, forests, waters, and wildlife.{normal}
     <BLANKLINE>
     {normal}  Ran {green}1{normal} tests with {boldred}1{normal} failures and {green}0{normal} errors in {green}0.002{normal} seconds.{normal}
+    {normal}Tearing down left over layers:{normal}
+      Tear down zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
 
 Diffs are highlighted so you can easily tell the context and the mismatches
 apart:
 
     >>> sys.argv = 'test --tests-pattern ^pledge$ --ndiff -c'.split()
     >>> _ = testrunner.run(defaults)
-    {normal}Running unit tests:{normal}
+    {normal}Running zope.testing.testrunner.layer.UnitTests tests:{normal}
+      Set up zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
     <BLANKLINE>
     <BLANKLINE>
     {boldred}Failure in test pledge (pledge){normal}
@@ -234,6 +240,8 @@
     {normal}      It's soils, minerals, forests, waters, and wildlife.{normal}
     <BLANKLINE>
     {normal}  Ran {green}1{normal} tests with {boldred}1{normal} failures and {green}0{normal} errors in {green}0.003{normal} seconds.{normal}
+    {normal}Tearing down left over layers:{normal}
+      Tear down zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
 
 
 Timing individual tests
@@ -244,7 +252,8 @@
     >>> sys.argv = 'test -u -t test_one.TestNotMuch -c -vvv'.split()
     >>> testrunner.run(defaults)
     {normal}Running tests at level 1{normal}
-    {normal}Running unit tests:{normal}
+    {normal}Running zope.testing.testrunner.layer.UnitTests tests:{normal}
+      Set up zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
     {normal}  Running:{normal}
      test_1 (sample1.sampletests.test_one.TestNotMuch) ({green}N.NNN s{normal})
      test_2 (sample1.sampletests.test_one.TestNotMuch) ({green}N.NNN s{normal})
@@ -253,8 +262,11 @@
      test_2 (sampletests.test_one.TestNotMuch) ({green}N.NNN s{normal})
      test_3 (sampletests.test_one.TestNotMuch) ({green}N.NNN s{normal})
     {normal}  Ran {green}6{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}N.NNN{normal} seconds.{normal}
+    {normal}Tearing down left over layers:{normal}
+      Tear down zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
     False
 
+
 If we had very slow tests we would see their times highlighted in a different color.
 Instead of creating a test that waits 10 seconds, let's lower the slow test threshold
 in the test runner to 0 seconds to make all of the tests seem slow.
@@ -262,7 +274,8 @@
     >>> sys.argv = 'test -u -t test_one.TestNotMuch -c -vvv --slow-test 0'.split()
     >>> testrunner.run(defaults)
     {normal}Running tests at level 1{normal}
-    {normal}Running unit tests:{normal}
+    {normal}Running zope.testing.testrunner.layer.UnitTests tests:{normal}
+      Set up zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
     {normal}  Running:{normal}
      test_1 (sample1.sampletests.test_one.TestNotMuch) ({boldmagenta}N.NNN s{normal})
      test_2 (sample1.sampletests.test_one.TestNotMuch) ({boldmagenta}N.NNN s{normal})
@@ -271,9 +284,12 @@
      test_2 (sampletests.test_one.TestNotMuch) ({boldmagenta}N.NNN s{normal})
      test_3 (sampletests.test_one.TestNotMuch) ({boldmagenta}N.NNN s{normal})
     {normal}  Ran {green}6{normal} tests with {green}0{normal} failures and {green}0{normal} errors in {green}N.NNN{normal} seconds.{normal}
+    {normal}Tearing down left over layers:{normal}
+      Tear down zope.testing.testrunner.layer.UnitTests in {green}N.NNN{normal} seconds.
     False
 
 
+
 Disabling colors
 ----------------
 

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-coverage.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-coverage.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-coverage.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -16,8 +16,6 @@
 
     >>> from zope.testing import testrunner
     >>> testrunner.run(defaults)
-    Running unit tests:
-      Ran 192 tests with 0 failures and 0 errors in 0.125 seconds.
     Running samplelayers.Layer1 tests:
       Set up samplelayers.Layer1 in 0.000 seconds.
       Ran 9 tests with 0 failures and 0 errors in 0.003 seconds.
@@ -45,10 +43,14 @@
       Tear down samplelayers.Layer121 in 0.000 seconds.
       Set up samplelayers.Layer122 in 0.000 seconds.
       Ran 34 tests with 0 failures and 0 errors in 0.025 seconds.
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Tear down samplelayers.Layer122 in N.NNN seconds.
+      Tear down samplelayers.Layer12 in N.NNN seconds.
+      Tear down samplelayers.Layer1 in N.NNN seconds.
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
     Tearing down left over layers:
-      Tear down samplelayers.Layer122 in 0.000 seconds.
-      Tear down samplelayers.Layer12 in 0.000 seconds.
-      Tear down samplelayers.Layer1 in 0.000 seconds.
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     lines   cov%   module   (path)
     ...
        52    92%   sample1.sampletests.test1   (testrunner-ex/sample1/sampletests/test1.py)

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-debugging.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-debugging.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-debugging.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -35,13 +35,15 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +ELLIPSIS
-    Running unit tests:...
+    Running zope.testing.testrunner.layer.UnitTests tests:
+    ...
     > testrunner-ex/sample3/sampletests_d.py(27)test_set_trace1()
     -> y = x
     (Pdb) p x
     1
     (Pdb) c
       Ran 1 tests with 0 failures and 0 errors in 0.001 seconds.
+    ...
     False
 
 Note that, prior to Python 2.4, calling pdb.set_trace caused pdb to
@@ -59,9 +61,8 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +NORMALIZE_WHITESPACE +REPORT_NDIFF
-    Running unit tests:
-    <BLANKLINE>
-    <BLANKLINE>
+    Running zope.testing.testrunner.layer.UnitTests tests:
+    ...
     Error in test test_post_mortem1 (sample3.sampletests_d.TestSomething)
     Traceback (most recent call last):
       File "testrunner-ex/sample3/sampletests_d.py",
@@ -89,9 +90,8 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +NORMALIZE_WHITESPACE +REPORT_NDIFF
-    Running unit tests:
-    <BLANKLINE>
-    <BLANKLINE>
+    Running zope.testing.testrunner.layer.UnitTests tests:
+    ...
     Error in test test_post_mortem_failure1 (sample3.sampletests_d.TestSomething)
     Traceback (most recent call last):
       File ".../unittest.py",  line 252, in debug

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-edge-cases.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-edge-cases.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-edge-cases.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -35,12 +35,20 @@
     >>> sys.argv = ['test']
     >>> testrunner.run(defaults)
     ... # doctest: +ELLIPSIS
-    Running unit tests:
-      Ran 192 tests with 0 failures and 0 errors in 0.028 seconds.
     Running samplelayers.Layer1 tests:
       Set up samplelayers.Layer1 in 0.000 seconds.
       Ran 9 tests with 0 failures and 0 errors in 0.000 seconds.
     ...
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Tear down samplelayers.Layer122 in N.NNN seconds.
+      Tear down samplelayers.Layer12 in N.NNN seconds.
+      Tear down samplelayers.Layer1 in N.NNN seconds.
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+    Total: 405 tests, 0 failures, 0 errors in N.NNN seconds.
+    False
 
 Debugging Edge Cases
 --------------------
@@ -66,13 +74,14 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +ELLIPSIS
-    Running unit tests:...
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     > testrunner-ex/sample3/sampletests_d.py(47)f()
     -> y = x
     (Pdb) p x
     1
     (Pdb) c
       Ran 1 tests with 0 failures and 0 errors in 0.001 seconds.
+    ...
     False
 
 Using pdb.set_trace in a function called by a doctest in a doc string:
@@ -82,7 +91,7 @@
     ...             ' -t set_trace4').split()
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     --Return--
     > doctest.py(351)set_trace()->None
     -> pdb.Pdb.set_trace(self)
@@ -93,6 +102,7 @@
     1
     (Pdb) c
       Ran 1 tests with 0 failures and 0 errors in 0.002 seconds.
+    ...
     False
 
 Using pdb in a docstring-based doctest
@@ -102,7 +112,7 @@
     ...             ' -t set_trace3').split()
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     --Return--
     > doctest.py(351)set_trace()->None
     -> pdb.Pdb.set_trace(self)
@@ -113,6 +123,7 @@
     1
     (Pdb) c
       Ran 1 tests with 0 failures and 0 errors in 0.002 seconds.
+    ...
     False
 
 Using pdb.set_trace in a doc file:
@@ -123,7 +134,7 @@
     ...             ' -t set_trace5').split()
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     --Return--
     > doctest.py(351)set_trace()->None
     -> pdb.Pdb.set_trace(self)
@@ -134,6 +145,7 @@
     1
     (Pdb) c
       Ran 1 tests with 0 failures and 0 errors in 0.002 seconds.
+    ...
     False
 
 
@@ -145,7 +157,7 @@
     ...             ' -t set_trace6').split()
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     --Return--
     > doctest.py(351)set_trace()->None
     -> pdb.Pdb.set_trace(self)
@@ -156,6 +168,7 @@
     1
     (Pdb) c
       Ran 1 tests with 0 failures and 0 errors in 0.002 seconds.
+    ...
     False
 
 Post-mortem debugging function called from ordinary test:
@@ -166,7 +179,7 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     <BLANKLINE>
     <BLANKLINE>
     Error in test test_post_mortem2 (sample3.sampletests_d.TestSomething)
@@ -196,9 +209,7 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
-    <BLANKLINE>
-    <BLANKLINE>
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     Error in test post_mortem3 (sample3.sampletests_d)
     Traceback (most recent call last):
       File "zope/testing/doctest.py", line 2276, in debug
@@ -230,9 +241,7 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
-    <BLANKLINE>
-    <BLANKLINE>
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     Error in test post_mortem4 (sample3.sampletests_d)
     Traceback (most recent call last):
       File "zope/testing/doctest.py", line 2276, in debug
@@ -264,7 +273,7 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     <BLANKLINE>
     <BLANKLINE>
     Error in test zope/testing/testrunner-ex/sample3/post_mortem5.txt
@@ -298,7 +307,7 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     <BLANKLINE>
     <BLANKLINE>
     Error in test zope/testing/testrunner-ex/sample3/post_mortem6.txt
@@ -332,7 +341,7 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     <BLANKLINE>
     <BLANKLINE>
     Error in test post_mortem_failure2 (sample3.sampletests_d)
@@ -367,7 +376,7 @@
     >>> try: testrunner.run(defaults)
     ... finally: sys.stdin = real_stdin
     ... # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     <BLANKLINE>
     <BLANKLINE>
     Error in test /home/jim/z3/zope.testing/src/zope/testing/testrunner-ex/sample3/post_mortem_failure.txt

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-errors.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-errors.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-errors.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -25,8 +25,11 @@
 
     >>> sys.argv = 'test --tests-pattern ^sampletests(f|_e|_f)?$ '.split()
     >>> testrunner.run(defaults)
-    ... # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
+    ... # doctest: +NORMALIZE_WHITESPACE +ELLIPSIS
+    Running samplelayers.Layer1 tests:
+    ...
+    Running zope.testing.testrunner.layer.UnitTests tests:
+    ...
     <BLANKLINE>
     <BLANKLINE>
     Failure in test eek (sample2.sampletests_e)
@@ -91,38 +94,9 @@
         raise self.failureException, \
     AssertionError: 1 != 0
     <BLANKLINE>
-      Ran 200 tests with 3 failures and 1 errors in 0.038 seconds.
-    Running samplelayers.Layer1 tests:
-      Set up samplelayers.Layer1 in 0.000 seconds.
-      Ran 9 tests with 0 failures and 0 errors in 0.000 seconds.
-    Running samplelayers.Layer11 tests:
-      Set up samplelayers.Layer11 in 0.000 seconds.
-      Ran 34 tests with 0 failures and 0 errors in 0.007 seconds.
-    Running samplelayers.Layer111 tests:
-      Set up samplelayers.Layerx in 0.000 seconds.
-      Set up samplelayers.Layer111 in 0.000 seconds.
-      Ran 34 tests with 0 failures and 0 errors in 0.007 seconds.
-    Running samplelayers.Layer112 tests:
-      Tear down samplelayers.Layer111 in 0.000 seconds.
-      Set up samplelayers.Layer112 in 0.000 seconds.
-      Ran 34 tests with 0 failures and 0 errors in 0.006 seconds.
-    Running samplelayers.Layer12 tests:
-      Tear down samplelayers.Layer112 in 0.000 seconds.
-      Tear down samplelayers.Layerx in 0.000 seconds.
-      Tear down samplelayers.Layer11 in 0.000 seconds.
-      Set up samplelayers.Layer12 in 0.000 seconds.
-      Ran 34 tests with 0 failures and 0 errors in 0.007 seconds.
-    Running samplelayers.Layer121 tests:
-      Set up samplelayers.Layer121 in 0.000 seconds.
-      Ran 34 tests with 0 failures and 0 errors in 0.006 seconds.
-    Running samplelayers.Layer122 tests:
-      Tear down samplelayers.Layer121 in 0.000 seconds.
-      Set up samplelayers.Layer122 in 0.000 seconds.
-      Ran 34 tests with 0 failures and 0 errors in 0.007 seconds.
+      Ran 200 tests with 3 failures and 1 errors in N.NNN seconds.
     Tearing down left over layers:
-      Tear down samplelayers.Layer122 in 0.000 seconds.
-      Tear down samplelayers.Layer12 in 0.000 seconds.
-      Tear down samplelayers.Layer1 in 0.000 seconds.
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     Total: 413 tests, 3 failures, 1 errors in N.NNN seconds.
     True
 
@@ -137,9 +111,10 @@
     >>> testrunner.run(defaults)
     ... # doctest: +NORMALIZE_WHITESPACE +REPORT_NDIFF
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+    ...
       Running:
-     .................................................................................................
+    .................................................................................................
     <BLANKLINE>
     Failure in test eek (sample2.sampletests_e)
     Failed doctest test for sample2.sampletests_e.eek
@@ -208,6 +183,7 @@
     ................................................................................................
     <BLANKLINE>
       Ran 200 tests with 3 failures and 1 errors in 0.040 seconds.
+    ...
     <BLANKLINE>
     Tests with errors:
        test3 (sample2.sampletests_e.Test)
@@ -224,7 +200,8 @@
     ...             ' -p').split()
     >>> testrunner.run(defaults)
     ... # doctest: +NORMALIZE_WHITESPACE +REPORT_NDIFF
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
         1/56 (1.8%)
     <BLANKLINE>
@@ -379,6 +356,8 @@
                       \r
     <BLANKLINE>
       Ran 56 tests with 3 failures and 1 errors in 0.054 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     True
 
 If you also want a summary of errors at the end, ask for verbosity as well
@@ -393,7 +372,8 @@
 
     >>> sys.argv = 'test --tests-pattern ^sampletests_1$'.split()
     >>> testrunner.run(defaults) # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     <BLANKLINE>
     <BLANKLINE>
     Failure in test eek (sample2.sampletests_1)
@@ -438,6 +418,8 @@
         NameError: name 'x' is not defined
     <BLANKLINE>
       Ran 1 tests with 1 failures and 0 errors in 0.002 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     True
 
 This can be a bit confusing, especially when there are enough tests
@@ -447,7 +429,8 @@
 
     >>> sys.argv = 'test --tests-pattern ^sampletests_1$ -1'.split()
     >>> testrunner.run(defaults) # doctest:
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     <BLANKLINE>
     <BLANKLINE>
     Failure in test eek (sample2.sampletests_1)
@@ -468,6 +451,8 @@
         NameError: name 'y' is not defined
     <BLANKLINE>
       Ran 1 tests with 1 failures and 0 errors in 0.001 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     True
 
 The --hide-secondary-failures option is an alias for -1:
@@ -477,7 +462,8 @@
     ...     ' --hide-secondary-failures'
     ...     ).split()
     >>> testrunner.run(defaults) # doctest:
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     <BLANKLINE>
     <BLANKLINE>
     Failure in test eek (sample2.sampletests_1)
@@ -498,6 +484,8 @@
         NameError: name 'y' is not defined
     <BLANKLINE>
       Ran 1 tests with 1 failures and 0 errors in 0.001 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     True
 
 The --show-secondary-failures option counters -1 (or it's alias),
@@ -510,7 +498,8 @@
     ...     ' --hide-secondary-failures --show-secondary-failures'
     ...     ).split()
     >>> testrunner.run(defaults) # doctest: +NORMALIZE_WHITESPACE
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     <BLANKLINE>
     <BLANKLINE>
     Failure in test eek (sample2.sampletests_1)
@@ -555,6 +544,8 @@
         NameError: name 'x' is not defined
     <BLANKLINE>
       Ran 1 tests with 1 failures and 0 errors in 0.002 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     True
 
 
@@ -568,7 +559,8 @@
 
     >>> sys.argv = 'test --tests-pattern ^pledge$'.split()
     >>> _ = testrunner.run(defaults)
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     <BLANKLINE>
     <BLANKLINE>
     Failure in test pledge (pledge)
@@ -591,6 +583,8 @@
         It's soils, minerals, forests, waters, and wildlife.
     <BLANKLINE>
       Ran 1 tests with 1 failures and 0 errors in 0.002 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
 Here, the actual output uses the word "and" rather than the word "an",
 but it's a bit hard to pick this out.  We can use the various diff
@@ -605,7 +599,8 @@
 
     >>> sys.argv = 'test --tests-pattern ^pledge$ --ndiff'.split()
     >>> _ = testrunner.run(defaults)
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     <BLANKLINE>
     <BLANKLINE>
     Failure in test pledge (pledge)
@@ -625,12 +620,15 @@
           It's soils, minerals, forests, waters, and wildlife.
     <BLANKLINE>
       Ran 1 tests with 1 failures and 0 errors in 0.003 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
 The -udiff option requests a standard "unified" diff:
 
     >>> sys.argv = 'test --tests-pattern ^pledge$ --udiff'.split()
     >>> _ = testrunner.run(defaults)
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     <BLANKLINE>
     <BLANKLINE>
     Failure in test pledge (pledge)
@@ -649,12 +647,15 @@
          the natural resources of my planet.
     <BLANKLINE>
       Ran 1 tests with 1 failures and 0 errors in 0.002 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
 The -cdiff option requests a standard "context" diff:
 
     >>> sys.argv = 'test --tests-pattern ^pledge$ --cdiff'.split()
     >>> _ = testrunner.run(defaults)
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     <BLANKLINE>
     <BLANKLINE>
     Failure in test pledge (pledge)
@@ -677,6 +678,8 @@
           the natural resources of my planet.
     <BLANKLINE>
       Ran 1 tests with 1 failures and 0 errors in 0.002 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
 
 Testing-Module Import Errors
@@ -783,7 +786,8 @@
 
     >>> sys.argv = 'test --tests-pattern ^unicode$ -u'.split()
     >>> testrunner.run(defaults) # doctest: +REPORT_NDIFF
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     <BLANKLINE>
     <BLANKLINE>
     Failure testrunner-ex/unicode.txt
@@ -808,6 +812,8 @@
         'xyz'
     <BLANKLINE>
       Ran 3 tests with 1 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     True
 
  
@@ -829,9 +835,12 @@
     ... else:
     ...     print 'sys.exit was not called'
     ... # doctest: +ELLIPSIS
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     ...
       Ran 1 tests with 1 failures and 0 errors in 0.002 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     exited with code 1
 
 A passing test does not exit.
@@ -845,8 +854,16 @@
     ... else:
     ...     print 'sys.exit was not called'
     ... # doctest: +ELLIPSIS
-    Running unit tests:
+    Running samplelayers.Layer11 tests:
     ...
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Tear down samplelayers.Layer122 in N.NNN seconds.
+      Tear down samplelayers.Layer12 in N.NNN seconds.
+      Tear down samplelayers.Layer1 in N.NNN seconds.
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+      Ran 160 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     Total: 364 tests, 0 failures, 0 errors in N.NNN seconds.
     ...
     sys.exit was not called

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-gc.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-gc.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-gc.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -15,16 +15,20 @@
     >>> defaults = ['--path', directory_with_tests]
 
     >>> from zope.testing import testrunner
-    
+
     >>> sys.argv = 'test --tests-pattern ^gc0$ --gc 0 -vv'.split()
     >>> _ = testrunner.run(defaults)
     Cyclic garbage collection is disabled.
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        make_sure_gc_is_disabled (gc0)
-      Ran 1 tests with 0 failures and 0 errors in 0.001 seconds.
+     make_sure_gc_is_disabled (gc0)
+      Ran 1 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
+
 Alternatively, if you think you are having a garbage collection
 related problem, you can cause garbage collection to happen more often
 by providing a low threshold:
@@ -33,10 +37,13 @@
     >>> _ = testrunner.run(defaults)
     Cyclic garbage collection threshold set to: (1,)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        make_sure_gc_threshold_is_one (gc1)
-      Ran 1 tests with 0 failures and 0 errors in 0.001 seconds.
+     make_sure_gc_threshold_is_one (gc1)
+      Ran 1 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
 You can specify up to 3 --gc options to set each of the 3 gc threshold
 values:
@@ -47,11 +54,15 @@
     >>> _ = testrunner.run(defaults)
     Cyclic garbage collection threshold set to: (701, 11, 9)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        make_sure_gc_threshold_is_701_11_9 (gcset)
-      Ran 1 tests with 0 failures and 0 errors in 0.001 seconds.
+     make_sure_gc_threshold_is_701_11_9 (gcset)
+      Ran 1 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
+
 Garbage Collection Statistics
 -----------------------------
 
@@ -70,13 +81,15 @@
     ...             .split())
     >>> _ = testrunner.run(defaults)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        generate_some_gc_statistics (gcstats)
-      Ran 1 tests with 0 failures and 0 errors in 0.006 seconds.
+     generate_some_gc_statistics (gcstats)
+      Ran 1 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
     >>> sys.stderr = stderr
 
     >>> print err.getvalue()        # doctest: +ELLIPSIS
     gc: collecting generation ...
-        

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-layers-api.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-layers-api.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-layers-api.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -114,15 +114,18 @@
 >>> from zope.testing.testrunner.runner import Runner
 >>> runner = Runner(options=fresh_options(), args=[], found_suites=[umbrella_suite])
 >>> succeeded = runner.run()
-Running unit tests:
-  Ran 2 tests with 0 failures and 0 errors in N.NNN seconds.
 Running BaseLayer tests:
   Set up BaseLayer in N.NNN seconds.
   Ran 2 tests with 0 failures and 0 errors in N.NNN seconds.
+Running zope.testing.testrunner.layer.UnitTests tests:
+  Tear down BaseLayer in N.NNN seconds.
+  Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+  Ran 2 tests with 0 failures and 0 errors in N.NNN seconds.
 Tearing down left over layers:
-  Tear down BaseLayer in N.NNN seconds.
+  Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 Total: 4 tests, 0 failures, 0 errors in N.NNN seconds.
 
+
 Now lets specify a layer in the suite containing TestSpecifyingNoLayer
 and run the tests again. This demonstrates the other method of specifying
 a layer. This is generally how you specify what layer doctests need.

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-layers.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-layers.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-layers.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -10,33 +10,40 @@
     ...     '--tests-pattern', '^sampletestsf?$',
     ...     ]
 
-    >>> sys.argv = 'test --layer 112 --layer unit'.split()
+    >>> sys.argv = 'test --layer 112 --layer Unit'.split()
     >>> from zope.testing import testrunner
     >>> testrunner.run(defaults)
-    Running unit tests:
-      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
     Running samplelayers.Layer112 tests:
       Set up samplelayers.Layerx in N.NNN seconds.
       Set up samplelayers.Layer1 in N.NNN seconds.
       Set up samplelayers.Layer11 in N.NNN seconds.
       Set up samplelayers.Layer112 in N.NNN seconds.
       Ran 34 tests with 0 failures and 0 errors in N.NNN seconds.
-    Tearing down left over layers:
+    Running zope.testing.testrunner.layer.UnitTests tests:
       Tear down samplelayers.Layer112 in N.NNN seconds.
       Tear down samplelayers.Layerx in N.NNN seconds.
       Tear down samplelayers.Layer11 in N.NNN seconds.
       Tear down samplelayers.Layer1 in N.NNN seconds.
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     Total: 226 tests, 0 failures, 0 errors in N.NNN seconds.
     False
 
+
 We can also specify that we want to run only the unit tests:
 
     >>> sys.argv = 'test -u'.split()
     >>> testrunner.run(defaults)
-    Running unit tests:
-      Ran 192 tests with 0 failures and 0 errors in 0.033 seconds.
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
 Or that we want to run all of the tests except for the unit tests:
 
     >>> sys.argv = 'test -f'.split()
@@ -79,8 +86,6 @@
 
     >>> sys.argv = 'test -uf'.split()
     >>> testrunner.run(defaults)
-    Running unit tests:
-      Ran 192 tests with 0 failures and 0 errors in 0.033 seconds.
     Running samplelayers.Layer1 tests:
       Set up samplelayers.Layer1 in N.NNN seconds.
       Ran 9 tests with 0 failures and 0 errors in N.NNN seconds.
@@ -108,10 +113,14 @@
       Tear down samplelayers.Layer121 in N.NNN seconds.
       Set up samplelayers.Layer122 in N.NNN seconds.
       Ran 34 tests with 0 failures and 0 errors in N.NNN seconds.
-    Tearing down left over layers:
+    Running zope.testing.testrunner.layer.UnitTests tests:
       Tear down samplelayers.Layer122 in N.NNN seconds.
       Tear down samplelayers.Layer12 in N.NNN seconds.
       Tear down samplelayers.Layer1 in N.NNN seconds.
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     Total: 405 tests, 0 failures, 0 errors in N.NNN seconds.
     False
 

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-leaks.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-leaks.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-leaks.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -61,7 +61,7 @@
 
     >>> sys.argv = 'test --tests-pattern leak -N4 -r'.split()
     >>> _ = testrunner.run(defaults)
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     Iteration 1
       Ran 1 tests with 0 failures and 0 errors in 0.000 seconds.
     Iteration 2
@@ -73,6 +73,8 @@
     Iteration 4
       Ran 1 tests with 0 failures and 0 errors in 0.000 seconds.
       sys refcount=92520    change=12
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
 Here we see that the system refcount is increating.  If we specify a
 verbosity greater than one, we can get details broken out by object
@@ -81,7 +83,7 @@
     >>> sys.argv = 'test --tests-pattern leak -N5 -r -v'.split()
     >>> _ = testrunner.run(defaults)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:...
     Iteration 1
       Running:
         .
@@ -160,6 +162,8 @@
         type                                                         0      1
         -------------------------------------------------------  -----   ----
         total                                                        6     12
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
 
 It is instructive to analyze the results in some detail.  The test
 being run was designed to intentionally leak:

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-profiling.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-profiling.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-profiling.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -19,12 +19,12 @@
 
     >>> from zope.testing import testrunner
     >>> testrunner.run(defaults)
-    Running unit tests:
-    ...
     Running samplelayers.Layer1 tests:
     ...
     Running samplelayers.Layer11 tests:
     ...
+    Running zope.testing.testrunner.layer.UnitTests tests:
+    ...
        ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     ...
     Total: ... tests, 0 failures, 0 errors in ... seconds.

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-progress.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-progress.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-progress.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -384,7 +384,8 @@
 
     >>> sys.argv = 'test -u -t test_one.TestNotMuch --auto-progress'.split()
     >>> testrunner.run(defaults)
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
         1/6 (16.7%)\r
                    \r
@@ -399,17 +400,23 @@
         6/6 (100.0%)\r
                     \r
     <BLANKLINE>
-      Ran 6 tests with 0 failures and 0 errors in 0.000 seconds.
+      Ran 6 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
 Let's stop pretending
 
     >>> sys.stdout = real_stdout
 
     >>> sys.argv = 'test -u -t test_one.TestNotMuch --auto-progress'.split()
     >>> testrunner.run(defaults)
-    Running unit tests:
-      Ran 6 tests with 0 failures and 0 errors in 0.000 seconds.
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+      Ran 6 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
 
@@ -422,7 +429,12 @@
 
     >>> sys.argv = 'test -u -t test_one.TestNotMuch -p --no-progress'.split()
     >>> testrunner.run(defaults)
-    Running unit tests:
-      Ran 6 tests with 0 failures and 0 errors in 0.000 seconds.
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+      Ran 6 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
+

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-repeat.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-repeat.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-repeat.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -12,16 +12,9 @@
     ...     '--tests-pattern', '^sampletestsf?$',
     ...     ]
 
-    >>> sys.argv = 'test --layer 112 --layer unit --repeat 3'.split()
+    >>> sys.argv = 'test --layer 112 --layer UnitTests --repeat 3'.split()
     >>> from zope.testing import testrunner
     >>> testrunner.run(defaults)
-    Running unit tests:
-    Iteration 1
-      Ran 192 tests with 0 failures and 0 errors in 0.054 seconds.
-    Iteration 2
-      Ran 192 tests with 0 failures and 0 errors in 0.054 seconds.
-    Iteration 3
-      Ran 192 tests with 0 failures and 0 errors in 0.052 seconds.
     Running samplelayers.Layer112 tests:
       Set up samplelayers.Layerx in 0.000 seconds.
       Set up samplelayers.Layer1 in 0.000 seconds.
@@ -33,14 +26,22 @@
       Ran 34 tests with 0 failures and 0 errors in 0.010 seconds.
     Iteration 3
       Ran 34 tests with 0 failures and 0 errors in 0.010 seconds.
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Tear down samplelayers.Layer112 in N.NNN seconds.
+      Tear down samplelayers.Layerx in N.NNN seconds.
+      Tear down samplelayers.Layer11 in N.NNN seconds.
+      Tear down samplelayers.Layer1 in N.NNN seconds.
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+    Iteration 1
+      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
+    Iteration 2
+      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
+    Iteration 3
+      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
     Tearing down left over layers:
-      Tear down samplelayers.Layer112 in 0.000 seconds.
-      Tear down samplelayers.Layerx in 0.000 seconds.
-      Tear down samplelayers.Layer11 in 0.000 seconds.
-      Tear down samplelayers.Layer1 in 0.000 seconds.
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     Total: 226 tests, 0 failures, 0 errors in N.NNN seconds.
     False
 
 The tests are repeated by layer.  Layers are set up and torn down only
 once.
- 

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-simple.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-simple.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-simple.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -47,8 +47,6 @@
     >>> import sys
     >>> sys.argv = ['test']
     >>> testrunner.run(defaults)
-    Running unit tests:
-      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
     Running samplelayers.Layer1 tests:
       Set up samplelayers.Layer1 in N.NNN seconds.
       Ran 9 tests with 0 failures and 0 errors in N.NNN seconds.
@@ -76,10 +74,14 @@
       Tear down samplelayers.Layer121 in N.NNN seconds.
       Set up samplelayers.Layer122 in N.NNN seconds.
       Ran 34 tests with 0 failures and 0 errors in N.NNN seconds.
-    Tearing down left over layers:
+    Running zope.testing.testrunner.layer.UnitTests tests:
       Tear down samplelayers.Layer122 in N.NNN seconds.
       Tear down samplelayers.Layer12 in N.NNN seconds.
       Tear down samplelayers.Layer1 in N.NNN seconds.
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
+      Ran 192 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     Total: 405 tests, 0 failures, 0 errors in N.NNN seconds.
     False
 

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-test-selection.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-test-selection.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-test-selection.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -45,113 +45,116 @@
     >>> sys.argv = 'test -u  -vv -ssample1 -ssample2'.split()
     >>> testrunner.run(defaults) 
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test_x1 (sample1.sampletestsf.TestA)
-        test_y0 (sample1.sampletestsf.TestA)
-        test_z0 (sample1.sampletestsf.TestA)
-        test_x0 (sample1.sampletestsf.TestB)
-        test_y1 (sample1.sampletestsf.TestB)
-        test_z0 (sample1.sampletestsf.TestB)
-        test_1 (sample1.sampletestsf.TestNotMuch)
-        test_2 (sample1.sampletestsf.TestNotMuch)
-        test_3 (sample1.sampletestsf.TestNotMuch)
-        test_x0 (sample1.sampletestsf)
-        test_y0 (sample1.sampletestsf)
-        test_z1 (sample1.sampletestsf)
-        testrunner-ex/sample1/../sampletests.txt
-        test_x1 (sample1.sample11.sampletests.TestA)
-        test_y0 (sample1.sample11.sampletests.TestA)
-        test_z0 (sample1.sample11.sampletests.TestA)
-        test_x0 (sample1.sample11.sampletests.TestB)
-        test_y1 (sample1.sample11.sampletests.TestB)
-        test_z0 (sample1.sample11.sampletests.TestB)
-        test_1 (sample1.sample11.sampletests.TestNotMuch)
-        test_2 (sample1.sample11.sampletests.TestNotMuch)
-        test_3 (sample1.sample11.sampletests.TestNotMuch)
-        test_x0 (sample1.sample11.sampletests)
-        test_y0 (sample1.sample11.sampletests)
-        test_z1 (sample1.sample11.sampletests)
-        testrunner-ex/sample1/sample11/../../sampletests.txt
-        test_x1 (sample1.sample13.sampletests.TestA)
-        test_y0 (sample1.sample13.sampletests.TestA)
-        test_z0 (sample1.sample13.sampletests.TestA)
-        test_x0 (sample1.sample13.sampletests.TestB)
-        test_y1 (sample1.sample13.sampletests.TestB)
-        test_z0 (sample1.sample13.sampletests.TestB)
-        test_1 (sample1.sample13.sampletests.TestNotMuch)
-        test_2 (sample1.sample13.sampletests.TestNotMuch)
-        test_3 (sample1.sample13.sampletests.TestNotMuch)
-        test_x0 (sample1.sample13.sampletests)
-        test_y0 (sample1.sample13.sampletests)
-        test_z1 (sample1.sample13.sampletests)
-        testrunner-ex/sample1/sample13/../../sampletests.txt
-        test_x1 (sample1.sampletests.test1.TestA)
-        test_y0 (sample1.sampletests.test1.TestA)
-        test_z0 (sample1.sampletests.test1.TestA)
-        test_x0 (sample1.sampletests.test1.TestB)
-        test_y1 (sample1.sampletests.test1.TestB)
-        test_z0 (sample1.sampletests.test1.TestB)
-        test_1 (sample1.sampletests.test1.TestNotMuch)
-        test_2 (sample1.sampletests.test1.TestNotMuch)
-        test_3 (sample1.sampletests.test1.TestNotMuch)
-        test_x0 (sample1.sampletests.test1)
-        test_y0 (sample1.sampletests.test1)
-        test_z1 (sample1.sampletests.test1)
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-        test_x1 (sample1.sampletests.test_one.TestA)
-        test_y0 (sample1.sampletests.test_one.TestA)
-        test_z0 (sample1.sampletests.test_one.TestA)
-        test_x0 (sample1.sampletests.test_one.TestB)
-        test_y1 (sample1.sampletests.test_one.TestB)
-        test_z0 (sample1.sampletests.test_one.TestB)
-        test_1 (sample1.sampletests.test_one.TestNotMuch)
-        test_2 (sample1.sampletests.test_one.TestNotMuch)
-        test_3 (sample1.sampletests.test_one.TestNotMuch)
-        test_x0 (sample1.sampletests.test_one)
-        test_y0 (sample1.sampletests.test_one)
-        test_z1 (sample1.sampletests.test_one)
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-        test_x1 (sample2.sample21.sampletests.TestA)
-        test_y0 (sample2.sample21.sampletests.TestA)
-        test_z0 (sample2.sample21.sampletests.TestA)
-        test_x0 (sample2.sample21.sampletests.TestB)
-        test_y1 (sample2.sample21.sampletests.TestB)
-        test_z0 (sample2.sample21.sampletests.TestB)
-        test_1 (sample2.sample21.sampletests.TestNotMuch)
-        test_2 (sample2.sample21.sampletests.TestNotMuch)
-        test_3 (sample2.sample21.sampletests.TestNotMuch)
-        test_x0 (sample2.sample21.sampletests)
-        test_y0 (sample2.sample21.sampletests)
-        test_z1 (sample2.sample21.sampletests)
-        testrunner-ex/sample2/sample21/../../sampletests.txt
-        test_x1 (sample2.sampletests.test_1.TestA)
-        test_y0 (sample2.sampletests.test_1.TestA)
-        test_z0 (sample2.sampletests.test_1.TestA)
-        test_x0 (sample2.sampletests.test_1.TestB)
-        test_y1 (sample2.sampletests.test_1.TestB)
-        test_z0 (sample2.sampletests.test_1.TestB)
-        test_1 (sample2.sampletests.test_1.TestNotMuch)
-        test_2 (sample2.sampletests.test_1.TestNotMuch)
-        test_3 (sample2.sampletests.test_1.TestNotMuch)
-        test_x0 (sample2.sampletests.test_1)
-        test_y0 (sample2.sampletests.test_1)
-        test_z1 (sample2.sampletests.test_1)
-        testrunner-ex/sample2/sampletests/../../sampletests.txt
-        test_x1 (sample2.sampletests.testone.TestA)
-        test_y0 (sample2.sampletests.testone.TestA)
-        test_z0 (sample2.sampletests.testone.TestA)
-        test_x0 (sample2.sampletests.testone.TestB)
-        test_y1 (sample2.sampletests.testone.TestB)
-        test_z0 (sample2.sampletests.testone.TestB)
-        test_1 (sample2.sampletests.testone.TestNotMuch)
-        test_2 (sample2.sampletests.testone.TestNotMuch)
-        test_3 (sample2.sampletests.testone.TestNotMuch)
-        test_x0 (sample2.sampletests.testone)
-        test_y0 (sample2.sampletests.testone)
-        test_z1 (sample2.sampletests.testone)
-        testrunner-ex/sample2/sampletests/../../sampletests.txt
-      Ran 128 tests with 0 failures and 0 errors in 0.025 seconds.
+     test_x1 (sample1.sampletestsf.TestA)
+     test_y0 (sample1.sampletestsf.TestA)
+     test_z0 (sample1.sampletestsf.TestA)
+     test_x0 (sample1.sampletestsf.TestB)
+     test_y1 (sample1.sampletestsf.TestB)
+     test_z0 (sample1.sampletestsf.TestB)
+     test_1 (sample1.sampletestsf.TestNotMuch)
+     test_2 (sample1.sampletestsf.TestNotMuch)
+     test_3 (sample1.sampletestsf.TestNotMuch)
+     test_x0 (sample1.sampletestsf)
+     test_y0 (sample1.sampletestsf)
+     test_z1 (sample1.sampletestsf)
+     testrunner-ex/sample1/../sampletests.txt
+     test_x1 (sample1.sample11.sampletests.TestA)
+     test_y0 (sample1.sample11.sampletests.TestA)
+     test_z0 (sample1.sample11.sampletests.TestA)
+     test_x0 (sample1.sample11.sampletests.TestB)
+     test_y1 (sample1.sample11.sampletests.TestB)
+     test_z0 (sample1.sample11.sampletests.TestB)
+     test_1 (sample1.sample11.sampletests.TestNotMuch)
+     test_2 (sample1.sample11.sampletests.TestNotMuch)
+     test_3 (sample1.sample11.sampletests.TestNotMuch)
+     test_x0 (sample1.sample11.sampletests)
+     test_y0 (sample1.sample11.sampletests)
+     test_z1 (sample1.sample11.sampletests)
+     testrunner-ex/sample1/sample11/../../sampletests.txt
+     test_x1 (sample1.sample13.sampletests.TestA)
+     test_y0 (sample1.sample13.sampletests.TestA)
+     test_z0 (sample1.sample13.sampletests.TestA)
+     test_x0 (sample1.sample13.sampletests.TestB)
+     test_y1 (sample1.sample13.sampletests.TestB)
+     test_z0 (sample1.sample13.sampletests.TestB)
+     test_1 (sample1.sample13.sampletests.TestNotMuch)
+     test_2 (sample1.sample13.sampletests.TestNotMuch)
+     test_3 (sample1.sample13.sampletests.TestNotMuch)
+     test_x0 (sample1.sample13.sampletests)
+     test_y0 (sample1.sample13.sampletests)
+     test_z1 (sample1.sample13.sampletests)
+     testrunner-ex/sample1/sample13/../../sampletests.txt
+     test_x1 (sample1.sampletests.test1.TestA)
+     test_y0 (sample1.sampletests.test1.TestA)
+     test_z0 (sample1.sampletests.test1.TestA)
+     test_x0 (sample1.sampletests.test1.TestB)
+     test_y1 (sample1.sampletests.test1.TestB)
+     test_z0 (sample1.sampletests.test1.TestB)
+     test_1 (sample1.sampletests.test1.TestNotMuch)
+     test_2 (sample1.sampletests.test1.TestNotMuch)
+     test_3 (sample1.sampletests.test1.TestNotMuch)
+     test_x0 (sample1.sampletests.test1)
+     test_y0 (sample1.sampletests.test1)
+     test_z1 (sample1.sampletests.test1)
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+     test_x1 (sample1.sampletests.test_one.TestA)
+     test_y0 (sample1.sampletests.test_one.TestA)
+     test_z0 (sample1.sampletests.test_one.TestA)
+     test_x0 (sample1.sampletests.test_one.TestB)
+     test_y1 (sample1.sampletests.test_one.TestB)
+     test_z0 (sample1.sampletests.test_one.TestB)
+     test_1 (sample1.sampletests.test_one.TestNotMuch)
+     test_2 (sample1.sampletests.test_one.TestNotMuch)
+     test_3 (sample1.sampletests.test_one.TestNotMuch)
+     test_x0 (sample1.sampletests.test_one)
+     test_y0 (sample1.sampletests.test_one)
+     test_z1 (sample1.sampletests.test_one)
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+     test_x1 (sample2.sample21.sampletests.TestA)
+     test_y0 (sample2.sample21.sampletests.TestA)
+     test_z0 (sample2.sample21.sampletests.TestA)
+     test_x0 (sample2.sample21.sampletests.TestB)
+     test_y1 (sample2.sample21.sampletests.TestB)
+     test_z0 (sample2.sample21.sampletests.TestB)
+     test_1 (sample2.sample21.sampletests.TestNotMuch)
+     test_2 (sample2.sample21.sampletests.TestNotMuch)
+     test_3 (sample2.sample21.sampletests.TestNotMuch)
+     test_x0 (sample2.sample21.sampletests)
+     test_y0 (sample2.sample21.sampletests)
+     test_z1 (sample2.sample21.sampletests)
+     testrunner-ex/sample2/sample21/../../sampletests.txt
+     test_x1 (sample2.sampletests.test_1.TestA)
+     test_y0 (sample2.sampletests.test_1.TestA)
+     test_z0 (sample2.sampletests.test_1.TestA)
+     test_x0 (sample2.sampletests.test_1.TestB)
+     test_y1 (sample2.sampletests.test_1.TestB)
+     test_z0 (sample2.sampletests.test_1.TestB)
+     test_1 (sample2.sampletests.test_1.TestNotMuch)
+     test_2 (sample2.sampletests.test_1.TestNotMuch)
+     test_3 (sample2.sampletests.test_1.TestNotMuch)
+     test_x0 (sample2.sampletests.test_1)
+     test_y0 (sample2.sampletests.test_1)
+     test_z1 (sample2.sampletests.test_1)
+     testrunner-ex/sample2/sampletests/../../sampletests.txt
+     test_x1 (sample2.sampletests.testone.TestA)
+     test_y0 (sample2.sampletests.testone.TestA)
+     test_z0 (sample2.sampletests.testone.TestA)
+     test_x0 (sample2.sampletests.testone.TestB)
+     test_y1 (sample2.sampletests.testone.TestB)
+     test_z0 (sample2.sampletests.testone.TestB)
+     test_1 (sample2.sampletests.testone.TestNotMuch)
+     test_2 (sample2.sampletests.testone.TestNotMuch)
+     test_3 (sample2.sampletests.testone.TestNotMuch)
+     test_x0 (sample2.sampletests.testone)
+     test_y0 (sample2.sampletests.testone)
+     test_z1 (sample2.sampletests.testone)
+     testrunner-ex/sample2/sampletests/../../sampletests.txt
+      Ran 128 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
 You can specify directory names instead of packages (useful for
@@ -192,69 +195,80 @@
     >>> sys.argv = 'test -u  -vv -ssample1 -m_one -mtest1'.split()
     >>> testrunner.run(defaults)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test_x1 (sample1.sampletests.test1.TestA)
-        test_y0 (sample1.sampletests.test1.TestA)
-        test_z0 (sample1.sampletests.test1.TestA)
-        test_x0 (sample1.sampletests.test1.TestB)
-        test_y1 (sample1.sampletests.test1.TestB)
-        test_z0 (sample1.sampletests.test1.TestB)
-        test_1 (sample1.sampletests.test1.TestNotMuch)
-        test_2 (sample1.sampletests.test1.TestNotMuch)
-        test_3 (sample1.sampletests.test1.TestNotMuch)
-        test_x0 (sample1.sampletests.test1)
-        test_y0 (sample1.sampletests.test1)
-        test_z1 (sample1.sampletests.test1)
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-        test_x1 (sample1.sampletests.test_one.TestA)
-        test_y0 (sample1.sampletests.test_one.TestA)
-        test_z0 (sample1.sampletests.test_one.TestA)
-        test_x0 (sample1.sampletests.test_one.TestB)
-        test_y1 (sample1.sampletests.test_one.TestB)
-        test_z0 (sample1.sampletests.test_one.TestB)
-        test_1 (sample1.sampletests.test_one.TestNotMuch)
-        test_2 (sample1.sampletests.test_one.TestNotMuch)
-        test_3 (sample1.sampletests.test_one.TestNotMuch)
-        test_x0 (sample1.sampletests.test_one)
-        test_y0 (sample1.sampletests.test_one)
-        test_z1 (sample1.sampletests.test_one)
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-      Ran 32 tests with 0 failures and 0 errors in 0.008 seconds.
+     test_x1 (sample1.sampletests.test1.TestA)
+     test_y0 (sample1.sampletests.test1.TestA)
+     test_z0 (sample1.sampletests.test1.TestA)
+     test_x0 (sample1.sampletests.test1.TestB)
+     test_y1 (sample1.sampletests.test1.TestB)
+     test_z0 (sample1.sampletests.test1.TestB)
+     test_1 (sample1.sampletests.test1.TestNotMuch)
+     test_2 (sample1.sampletests.test1.TestNotMuch)
+     test_3 (sample1.sampletests.test1.TestNotMuch)
+     test_x0 (sample1.sampletests.test1)
+     test_y0 (sample1.sampletests.test1)
+     test_z1 (sample1.sampletests.test1)
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+     test_x1 (sample1.sampletests.test_one.TestA)
+     test_y0 (sample1.sampletests.test_one.TestA)
+     test_z0 (sample1.sampletests.test_one.TestA)
+     test_x0 (sample1.sampletests.test_one.TestB)
+     test_y1 (sample1.sampletests.test_one.TestB)
+     test_z0 (sample1.sampletests.test_one.TestB)
+     test_1 (sample1.sampletests.test_one.TestNotMuch)
+     test_2 (sample1.sampletests.test_one.TestNotMuch)
+     test_3 (sample1.sampletests.test_one.TestNotMuch)
+     test_x0 (sample1.sampletests.test_one)
+     test_y0 (sample1.sampletests.test_one)
+     test_z1 (sample1.sampletests.test_one)
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+      Ran 32 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
 and by test within the module using the --test (-t) option:
 
     >>> sys.argv = 'test -u  -vv -ssample1 -m_one -mtest1 -tx0 -ty0'.split()
     >>> testrunner.run(defaults)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test_y0 (sample1.sampletests.test1.TestA)
-        test_x0 (sample1.sampletests.test1.TestB)
-        test_x0 (sample1.sampletests.test1)
-        test_y0 (sample1.sampletests.test1)
-        test_y0 (sample1.sampletests.test_one.TestA)
-        test_x0 (sample1.sampletests.test_one.TestB)
-        test_x0 (sample1.sampletests.test_one)
-        test_y0 (sample1.sampletests.test_one)
-      Ran 8 tests with 0 failures and 0 errors in 0.003 seconds.
+     test_y0 (sample1.sampletests.test1.TestA)
+     test_x0 (sample1.sampletests.test1.TestB)
+     test_x0 (sample1.sampletests.test1)
+     test_y0 (sample1.sampletests.test1)
+     test_y0 (sample1.sampletests.test_one.TestA)
+     test_x0 (sample1.sampletests.test_one.TestB)
+     test_x0 (sample1.sampletests.test_one)
+     test_y0 (sample1.sampletests.test_one)
+      Ran 8 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
 
     >>> sys.argv = 'test -u  -vv -ssample1 -ttxt'.split()
     >>> testrunner.run(defaults)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        testrunner-ex/sample1/../sampletests.txt
-        testrunner-ex/sample1/sample11/../../sampletests.txt
-        testrunner-ex/sample1/sample13/../../sampletests.txt
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-      Ran 20 tests with 0 failures and 0 errors in 0.004 seconds.
+     testrunner-ex/sample1/../sampletests.txt
+     testrunner-ex/sample1/sample11/../../sampletests.txt
+     testrunner-ex/sample1/sample13/../../sampletests.txt
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+      Ran 20 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
 The --module and --test options take regular expressions.  If the
 regular expressions specified begin with '!', then tests that don't
 match the regular expression are selected:
@@ -262,111 +276,122 @@
     >>> sys.argv = 'test -u  -vv -ssample1 -m!sample1[.]sample1'.split()
     >>> testrunner.run(defaults) 
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test_x1 (sample1.sampletestsf.TestA)
-        test_y0 (sample1.sampletestsf.TestA)
-        test_z0 (sample1.sampletestsf.TestA)
-        test_x0 (sample1.sampletestsf.TestB)
-        test_y1 (sample1.sampletestsf.TestB)
-        test_z0 (sample1.sampletestsf.TestB)
-        test_1 (sample1.sampletestsf.TestNotMuch)
-        test_2 (sample1.sampletestsf.TestNotMuch)
-        test_3 (sample1.sampletestsf.TestNotMuch)
-        test_x0 (sample1.sampletestsf)
-        test_y0 (sample1.sampletestsf)
-        test_z1 (sample1.sampletestsf)
-        testrunner-ex/sample1/../sampletests.txt
-        test_x1 (sample1.sampletests.test1.TestA)
-        test_y0 (sample1.sampletests.test1.TestA)
-        test_z0 (sample1.sampletests.test1.TestA)
-        test_x0 (sample1.sampletests.test1.TestB)
-        test_y1 (sample1.sampletests.test1.TestB)
-        test_z0 (sample1.sampletests.test1.TestB)
-        test_1 (sample1.sampletests.test1.TestNotMuch)
-        test_2 (sample1.sampletests.test1.TestNotMuch)
-        test_3 (sample1.sampletests.test1.TestNotMuch)
-        test_x0 (sample1.sampletests.test1)
-        test_y0 (sample1.sampletests.test1)
-        test_z1 (sample1.sampletests.test1)
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-        test_x1 (sample1.sampletests.test_one.TestA)
-        test_y0 (sample1.sampletests.test_one.TestA)
-        test_z0 (sample1.sampletests.test_one.TestA)
-        test_x0 (sample1.sampletests.test_one.TestB)
-        test_y1 (sample1.sampletests.test_one.TestB)
-        test_z0 (sample1.sampletests.test_one.TestB)
-        test_1 (sample1.sampletests.test_one.TestNotMuch)
-        test_2 (sample1.sampletests.test_one.TestNotMuch)
-        test_3 (sample1.sampletests.test_one.TestNotMuch)
-        test_x0 (sample1.sampletests.test_one)
-        test_y0 (sample1.sampletests.test_one)
-        test_z1 (sample1.sampletests.test_one)
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-      Ran 48 tests with 0 failures and 0 errors in 0.017 seconds.
+     test_x1 (sample1.sampletestsf.TestA)
+     test_y0 (sample1.sampletestsf.TestA)
+     test_z0 (sample1.sampletestsf.TestA)
+     test_x0 (sample1.sampletestsf.TestB)
+     test_y1 (sample1.sampletestsf.TestB)
+     test_z0 (sample1.sampletestsf.TestB)
+     test_1 (sample1.sampletestsf.TestNotMuch)
+     test_2 (sample1.sampletestsf.TestNotMuch)
+     test_3 (sample1.sampletestsf.TestNotMuch)
+     test_x0 (sample1.sampletestsf)
+     test_y0 (sample1.sampletestsf)
+     test_z1 (sample1.sampletestsf)
+     testrunner-ex/sample1/../sampletests.txt
+     test_x1 (sample1.sampletests.test1.TestA)
+     test_y0 (sample1.sampletests.test1.TestA)
+     test_z0 (sample1.sampletests.test1.TestA)
+     test_x0 (sample1.sampletests.test1.TestB)
+     test_y1 (sample1.sampletests.test1.TestB)
+     test_z0 (sample1.sampletests.test1.TestB)
+     test_1 (sample1.sampletests.test1.TestNotMuch)
+     test_2 (sample1.sampletests.test1.TestNotMuch)
+     test_3 (sample1.sampletests.test1.TestNotMuch)
+     test_x0 (sample1.sampletests.test1)
+     test_y0 (sample1.sampletests.test1)
+     test_z1 (sample1.sampletests.test1)
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+     test_x1 (sample1.sampletests.test_one.TestA)
+     test_y0 (sample1.sampletests.test_one.TestA)
+     test_z0 (sample1.sampletests.test_one.TestA)
+     test_x0 (sample1.sampletests.test_one.TestB)
+     test_y1 (sample1.sampletests.test_one.TestB)
+     test_z0 (sample1.sampletests.test_one.TestB)
+     test_1 (sample1.sampletests.test_one.TestNotMuch)
+     test_2 (sample1.sampletests.test_one.TestNotMuch)
+     test_3 (sample1.sampletests.test_one.TestNotMuch)
+     test_x0 (sample1.sampletests.test_one)
+     test_y0 (sample1.sampletests.test_one)
+     test_z1 (sample1.sampletests.test_one)
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+      Ran 48 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
 Module and test filters can also be given as positional arguments:
 
 
     >>> sys.argv = 'test -u  -vv -ssample1 !sample1[.]sample1'.split()
     >>> testrunner.run(defaults) 
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test_x1 (sample1.sampletestsf.TestA)
-        test_y0 (sample1.sampletestsf.TestA)
-        test_z0 (sample1.sampletestsf.TestA)
-        test_x0 (sample1.sampletestsf.TestB)
-        test_y1 (sample1.sampletestsf.TestB)
-        test_z0 (sample1.sampletestsf.TestB)
-        test_1 (sample1.sampletestsf.TestNotMuch)
-        test_2 (sample1.sampletestsf.TestNotMuch)
-        test_3 (sample1.sampletestsf.TestNotMuch)
-        test_x0 (sample1.sampletestsf)
-        test_y0 (sample1.sampletestsf)
-        test_z1 (sample1.sampletestsf)
-        testrunner-ex/sample1/../sampletests.txt
-        test_x1 (sample1.sampletests.test1.TestA)
-        test_y0 (sample1.sampletests.test1.TestA)
-        test_z0 (sample1.sampletests.test1.TestA)
-        test_x0 (sample1.sampletests.test1.TestB)
-        test_y1 (sample1.sampletests.test1.TestB)
-        test_z0 (sample1.sampletests.test1.TestB)
-        test_1 (sample1.sampletests.test1.TestNotMuch)
-        test_2 (sample1.sampletests.test1.TestNotMuch)
-        test_3 (sample1.sampletests.test1.TestNotMuch)
-        test_x0 (sample1.sampletests.test1)
-        test_y0 (sample1.sampletests.test1)
-        test_z1 (sample1.sampletests.test1)
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-        test_x1 (sample1.sampletests.test_one.TestA)
-        test_y0 (sample1.sampletests.test_one.TestA)
-        test_z0 (sample1.sampletests.test_one.TestA)
-        test_x0 (sample1.sampletests.test_one.TestB)
-        test_y1 (sample1.sampletests.test_one.TestB)
-        test_z0 (sample1.sampletests.test_one.TestB)
-        test_1 (sample1.sampletests.test_one.TestNotMuch)
-        test_2 (sample1.sampletests.test_one.TestNotMuch)
-        test_3 (sample1.sampletests.test_one.TestNotMuch)
-        test_x0 (sample1.sampletests.test_one)
-        test_y0 (sample1.sampletests.test_one)
-        test_z1 (sample1.sampletests.test_one)
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-      Ran 48 tests with 0 failures and 0 errors in 0.017 seconds.
+     test_x1 (sample1.sampletestsf.TestA)
+     test_y0 (sample1.sampletestsf.TestA)
+     test_z0 (sample1.sampletestsf.TestA)
+     test_x0 (sample1.sampletestsf.TestB)
+     test_y1 (sample1.sampletestsf.TestB)
+     test_z0 (sample1.sampletestsf.TestB)
+     test_1 (sample1.sampletestsf.TestNotMuch)
+     test_2 (sample1.sampletestsf.TestNotMuch)
+     test_3 (sample1.sampletestsf.TestNotMuch)
+     test_x0 (sample1.sampletestsf)
+     test_y0 (sample1.sampletestsf)
+     test_z1 (sample1.sampletestsf)
+     testrunner-ex/sample1/../sampletests.txt
+     test_x1 (sample1.sampletests.test1.TestA)
+     test_y0 (sample1.sampletests.test1.TestA)
+     test_z0 (sample1.sampletests.test1.TestA)
+     test_x0 (sample1.sampletests.test1.TestB)
+     test_y1 (sample1.sampletests.test1.TestB)
+     test_z0 (sample1.sampletests.test1.TestB)
+     test_1 (sample1.sampletests.test1.TestNotMuch)
+     test_2 (sample1.sampletests.test1.TestNotMuch)
+     test_3 (sample1.sampletests.test1.TestNotMuch)
+     test_x0 (sample1.sampletests.test1)
+     test_y0 (sample1.sampletests.test1)
+     test_z1 (sample1.sampletests.test1)
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+     test_x1 (sample1.sampletests.test_one.TestA)
+     test_y0 (sample1.sampletests.test_one.TestA)
+     test_z0 (sample1.sampletests.test_one.TestA)
+     test_x0 (sample1.sampletests.test_one.TestB)
+     test_y1 (sample1.sampletests.test_one.TestB)
+     test_z0 (sample1.sampletests.test_one.TestB)
+     test_1 (sample1.sampletests.test_one.TestNotMuch)
+     test_2 (sample1.sampletests.test_one.TestNotMuch)
+     test_3 (sample1.sampletests.test_one.TestNotMuch)
+     test_x0 (sample1.sampletests.test_one)
+     test_y0 (sample1.sampletests.test_one)
+     test_z1 (sample1.sampletests.test_one)
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+      Ran 48 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
     >>> sys.argv = 'test -u  -vv -ssample1 . txt'.split()
     >>> testrunner.run(defaults)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        testrunner-ex/sample1/../sampletests.txt
-        testrunner-ex/sample1/sample11/../../sampletests.txt
-        testrunner-ex/sample1/sample13/../../sampletests.txt
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-        testrunner-ex/sample1/sampletests/../../sampletests.txt
-      Ran 20 tests with 0 failures and 0 errors in 0.004 seconds.
+     testrunner-ex/sample1/../sampletests.txt
+     testrunner-ex/sample1/sample11/../../sampletests.txt
+     testrunner-ex/sample1/sample13/../../sampletests.txt
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+     testrunner-ex/sample1/sampletests/../../sampletests.txt
+      Ran 20 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
 Sometimes, There are tests that you don't want to run by default.
@@ -380,45 +405,48 @@
     >>> sys.argv = 'test -u  -vv -t test_y1 -t test_y0'.split()
     >>> testrunner.run(defaults)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test_y0 (sampletestsf.TestA)
-        test_y1 (sampletestsf.TestB)
-        test_y0 (sampletestsf)
-        test_y0 (sample1.sampletestsf.TestA)
-        test_y1 (sample1.sampletestsf.TestB)
-        test_y0 (sample1.sampletestsf)
-        test_y0 (sample1.sample11.sampletests.TestA)
-        test_y1 (sample1.sample11.sampletests.TestB)
-        test_y0 (sample1.sample11.sampletests)
-        test_y0 (sample1.sample13.sampletests.TestA)
-        test_y1 (sample1.sample13.sampletests.TestB)
-        test_y0 (sample1.sample13.sampletests)
-        test_y0 (sample1.sampletests.test1.TestA)
-        test_y1 (sample1.sampletests.test1.TestB)
-        test_y0 (sample1.sampletests.test1)
-        test_y0 (sample1.sampletests.test_one.TestA)
-        test_y1 (sample1.sampletests.test_one.TestB)
-        test_y0 (sample1.sampletests.test_one)
-        test_y0 (sample2.sample21.sampletests.TestA)
-        test_y1 (sample2.sample21.sampletests.TestB)
-        test_y0 (sample2.sample21.sampletests)
-        test_y0 (sample2.sampletests.test_1.TestA)
-        test_y1 (sample2.sampletests.test_1.TestB)
-        test_y0 (sample2.sampletests.test_1)
-        test_y0 (sample2.sampletests.testone.TestA)
-        test_y1 (sample2.sampletests.testone.TestB)
-        test_y0 (sample2.sampletests.testone)
-        test_y0 (sample3.sampletests.TestA)
-        test_y1 (sample3.sampletests.TestB)
-        test_y0 (sample3.sampletests)
-        test_y0 (sampletests.test1.TestA)
-        test_y1 (sampletests.test1.TestB)
-        test_y0 (sampletests.test1)
-        test_y0 (sampletests.test_one.TestA)
-        test_y1 (sampletests.test_one.TestB)
-        test_y0 (sampletests.test_one)
-      Ran 36 tests with 0 failures and 0 errors in 0.009 seconds.
+     test_y0 (sampletestsf.TestA)
+     test_y1 (sampletestsf.TestB)
+     test_y0 (sampletestsf)
+     test_y0 (sample1.sampletestsf.TestA)
+     test_y1 (sample1.sampletestsf.TestB)
+     test_y0 (sample1.sampletestsf)
+     test_y0 (sample1.sample11.sampletests.TestA)
+     test_y1 (sample1.sample11.sampletests.TestB)
+     test_y0 (sample1.sample11.sampletests)
+     test_y0 (sample1.sample13.sampletests.TestA)
+     test_y1 (sample1.sample13.sampletests.TestB)
+     test_y0 (sample1.sample13.sampletests)
+     test_y0 (sample1.sampletests.test1.TestA)
+     test_y1 (sample1.sampletests.test1.TestB)
+     test_y0 (sample1.sampletests.test1)
+     test_y0 (sample1.sampletests.test_one.TestA)
+     test_y1 (sample1.sampletests.test_one.TestB)
+     test_y0 (sample1.sampletests.test_one)
+     test_y0 (sample2.sample21.sampletests.TestA)
+     test_y1 (sample2.sample21.sampletests.TestB)
+     test_y0 (sample2.sample21.sampletests)
+     test_y0 (sample2.sampletests.test_1.TestA)
+     test_y1 (sample2.sampletests.test_1.TestB)
+     test_y0 (sample2.sampletests.test_1)
+     test_y0 (sample2.sampletests.testone.TestA)
+     test_y1 (sample2.sampletests.testone.TestB)
+     test_y0 (sample2.sampletests.testone)
+     test_y0 (sample3.sampletests.TestA)
+     test_y1 (sample3.sampletests.TestB)
+     test_y0 (sample3.sampletests)
+     test_y0 (sampletests.test1.TestA)
+     test_y1 (sampletests.test1.TestB)
+     test_y0 (sampletests.test1)
+     test_y0 (sampletests.test_one.TestA)
+     test_y1 (sampletests.test_one.TestB)
+     test_y0 (sampletests.test_one)
+      Ran 36 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
 
@@ -428,96 +456,103 @@
     >>> sys.argv = 'test -u  -vv -a 2 -t test_y1 -t test_y0'.split()
     >>> testrunner.run(defaults)
     Running tests at level 2
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test_y0 (sampletestsf.TestA)
-        test_y0 (sampletestsf.TestA2)
-        test_y1 (sampletestsf.TestB)
-        test_y0 (sampletestsf)
-        test_y0 (sample1.sampletestsf.TestA)
-        test_y1 (sample1.sampletestsf.TestB)
-        test_y0 (sample1.sampletestsf)
-        test_y0 (sample1.sample11.sampletests.TestA)
-        test_y1 (sample1.sample11.sampletests.TestB)
-        test_y1 (sample1.sample11.sampletests.TestB2)
-        test_y0 (sample1.sample11.sampletests)
-        test_y0 (sample1.sample13.sampletests.TestA)
-        test_y1 (sample1.sample13.sampletests.TestB)
-        test_y0 (sample1.sample13.sampletests)
-        test_y0 (sample1.sampletests.test1.TestA)
-        test_y1 (sample1.sampletests.test1.TestB)
-        test_y0 (sample1.sampletests.test1)
-        test_y0 (sample1.sampletests.test_one.TestA)
-        test_y1 (sample1.sampletests.test_one.TestB)
-        test_y0 (sample1.sampletests.test_one)
-        test_y0 (sample2.sample21.sampletests.TestA)
-        test_y1 (sample2.sample21.sampletests.TestB)
-        test_y0 (sample2.sample21.sampletests)
-        test_y0 (sample2.sampletests.test_1.TestA)
-        test_y1 (sample2.sampletests.test_1.TestB)
-        test_y0 (sample2.sampletests.test_1)
-        test_y0 (sample2.sampletests.testone.TestA)
-        test_y1 (sample2.sampletests.testone.TestB)
-        test_y0 (sample2.sampletests.testone)
-        test_y0 (sample3.sampletests.TestA)
-        test_y1 (sample3.sampletests.TestB)
-        test_y0 (sample3.sampletests)
-        test_y0 (sampletests.test1.TestA)
-        test_y1 (sampletests.test1.TestB)
-        test_y0 (sampletests.test1)
-        test_y0 (sampletests.test_one.TestA)
-        test_y1 (sampletests.test_one.TestB)
-        test_y0 (sampletests.test_one)
-      Ran 38 tests with 0 failures and 0 errors in 0.009 seconds.
+     test_y0 (sampletestsf.TestA)
+     test_y0 (sampletestsf.TestA2)
+     test_y1 (sampletestsf.TestB)
+     test_y0 (sampletestsf)
+     test_y0 (sample1.sampletestsf.TestA)
+     test_y1 (sample1.sampletestsf.TestB)
+     test_y0 (sample1.sampletestsf)
+     test_y0 (sample1.sample11.sampletests.TestA)
+     test_y1 (sample1.sample11.sampletests.TestB)
+     test_y1 (sample1.sample11.sampletests.TestB2)
+     test_y0 (sample1.sample11.sampletests)
+     test_y0 (sample1.sample13.sampletests.TestA)
+     test_y1 (sample1.sample13.sampletests.TestB)
+     test_y0 (sample1.sample13.sampletests)
+     test_y0 (sample1.sampletests.test1.TestA)
+     test_y1 (sample1.sampletests.test1.TestB)
+     test_y0 (sample1.sampletests.test1)
+     test_y0 (sample1.sampletests.test_one.TestA)
+     test_y1 (sample1.sampletests.test_one.TestB)
+     test_y0 (sample1.sampletests.test_one)
+     test_y0 (sample2.sample21.sampletests.TestA)
+     test_y1 (sample2.sample21.sampletests.TestB)
+     test_y0 (sample2.sample21.sampletests)
+     test_y0 (sample2.sampletests.test_1.TestA)
+     test_y1 (sample2.sampletests.test_1.TestB)
+     test_y0 (sample2.sampletests.test_1)
+     test_y0 (sample2.sampletests.testone.TestA)
+     test_y1 (sample2.sampletests.testone.TestB)
+     test_y0 (sample2.sampletests.testone)
+     test_y0 (sample3.sampletests.TestA)
+     test_y1 (sample3.sampletests.TestB)
+     test_y0 (sample3.sampletests)
+     test_y0 (sampletests.test1.TestA)
+     test_y1 (sampletests.test1.TestB)
+     test_y0 (sampletests.test1)
+     test_y0 (sampletests.test_one.TestA)
+     test_y1 (sampletests.test_one.TestB)
+     test_y0 (sampletests.test_one)
+      Ran 38 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
 We can use the --all option to run tests at all levels:
 
     >>> sys.argv = 'test -u  -vv --all -t test_y1 -t test_y0'.split()
     >>> testrunner.run(defaults)
     Running tests at all levels
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test_y0 (sampletestsf.TestA)
-        test_y0 (sampletestsf.TestA2)
-        test_y1 (sampletestsf.TestB)
-        test_y0 (sampletestsf)
-        test_y0 (sample1.sampletestsf.TestA)
-        test_y1 (sample1.sampletestsf.TestB)
-        test_y0 (sample1.sampletestsf)
-        test_y0 (sample1.sample11.sampletests.TestA)
-        test_y0 (sample1.sample11.sampletests.TestA3)
-        test_y1 (sample1.sample11.sampletests.TestB)
-        test_y1 (sample1.sample11.sampletests.TestB2)
-        test_y0 (sample1.sample11.sampletests)
-        test_y0 (sample1.sample13.sampletests.TestA)
-        test_y1 (sample1.sample13.sampletests.TestB)
-        test_y0 (sample1.sample13.sampletests)
-        test_y0 (sample1.sampletests.test1.TestA)
-        test_y1 (sample1.sampletests.test1.TestB)
-        test_y0 (sample1.sampletests.test1)
-        test_y0 (sample1.sampletests.test_one.TestA)
-        test_y1 (sample1.sampletests.test_one.TestB)
-        test_y0 (sample1.sampletests.test_one)
-        test_y0 (sample2.sample21.sampletests.TestA)
-        test_y1 (sample2.sample21.sampletests.TestB)
-        test_y0 (sample2.sample21.sampletests)
-        test_y0 (sample2.sampletests.test_1.TestA)
-        test_y1 (sample2.sampletests.test_1.TestB)
-        test_y0 (sample2.sampletests.test_1)
-        test_y0 (sample2.sampletests.testone.TestA)
-        test_y1 (sample2.sampletests.testone.TestB)
-        test_y0 (sample2.sampletests.testone)
-        test_y0 (sample3.sampletests.TestA)
-        test_y1 (sample3.sampletests.TestB)
-        test_y0 (sample3.sampletests)
-        test_y0 (sampletests.test1.TestA)
-        test_y1 (sampletests.test1.TestB)
-        test_y0 (sampletests.test1)
-        test_y0 (sampletests.test_one.TestA)
-        test_y1 (sampletests.test_one.TestB)
-        test_y0 (sampletests.test_one)
-      Ran 39 tests with 0 failures and 0 errors in 0.009 seconds.
+     test_y0 (sampletestsf.TestA)
+     test_y0 (sampletestsf.TestA2)
+     test_y1 (sampletestsf.TestB)
+     test_y0 (sampletestsf)
+     test_y0 (sample1.sampletestsf.TestA)
+     test_y1 (sample1.sampletestsf.TestB)
+     test_y0 (sample1.sampletestsf)
+     test_y0 (sample1.sample11.sampletests.TestA)
+     test_y0 (sample1.sample11.sampletests.TestA3)
+     test_y1 (sample1.sample11.sampletests.TestB)
+     test_y1 (sample1.sample11.sampletests.TestB2)
+     test_y0 (sample1.sample11.sampletests)
+     test_y0 (sample1.sample13.sampletests.TestA)
+     test_y1 (sample1.sample13.sampletests.TestB)
+     test_y0 (sample1.sample13.sampletests)
+     test_y0 (sample1.sampletests.test1.TestA)
+     test_y1 (sample1.sampletests.test1.TestB)
+     test_y0 (sample1.sampletests.test1)
+     test_y0 (sample1.sampletests.test_one.TestA)
+     test_y1 (sample1.sampletests.test_one.TestB)
+     test_y0 (sample1.sampletests.test_one)
+     test_y0 (sample2.sample21.sampletests.TestA)
+     test_y1 (sample2.sample21.sampletests.TestB)
+     test_y0 (sample2.sample21.sampletests)
+     test_y0 (sample2.sampletests.test_1.TestA)
+     test_y1 (sample2.sampletests.test_1.TestB)
+     test_y0 (sample2.sampletests.test_1)
+     test_y0 (sample2.sampletests.testone.TestA)
+     test_y1 (sample2.sampletests.testone.TestB)
+     test_y0 (sample2.sampletests.testone)
+     test_y0 (sample3.sampletests.TestA)
+     test_y1 (sample3.sampletests.TestB)
+     test_y0 (sample3.sampletests)
+     test_y0 (sampletests.test1.TestA)
+     test_y1 (sampletests.test1.TestB)
+     test_y0 (sampletests.test1)
+     test_y0 (sampletests.test_one.TestA)
+     test_y1 (sampletests.test_one.TestB)
+     test_y0 (sampletests.test_one)
+      Ran 39 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
 
@@ -530,18 +565,6 @@
 
     >>> sys.argv = 'test --all -m sample1 -t test_y0 --list-tests'.split()
     >>> testrunner.run(defaults)
-    Listing unit tests:
-      test_y0 (sample1.sampletestsf.TestA)
-      test_y0 (sample1.sampletestsf)
-      test_y0 (sample1.sample11.sampletests.TestA)
-      test_y0 (sample1.sample11.sampletests.TestA3)
-      test_y0 (sample1.sample11.sampletests)
-      test_y0 (sample1.sample13.sampletests.TestA)
-      test_y0 (sample1.sample13.sampletests)
-      test_y0 (sample1.sampletests.test1.TestA)
-      test_y0 (sample1.sampletests.test1)
-      test_y0 (sample1.sampletests.test_one.TestA)
-      test_y0 (sample1.sampletests.test_one)
     Listing samplelayers.Layer11 tests:
       test_y0 (sample1.sampletests.test11.TestA)
       test_y0 (sample1.sampletests.test11)
@@ -560,5 +583,16 @@
     Listing samplelayers.Layer122 tests:
       test_y0 (sample1.sampletests.test122.TestA)
       test_y0 (sample1.sampletests.test122)
+    Listing zope.testing.testrunner.layer.UnitTests tests:
+      test_y0 (sample1.sampletestsf.TestA)
+      test_y0 (sample1.sampletestsf)
+      test_y0 (sample1.sample11.sampletests.TestA)
+      test_y0 (sample1.sample11.sampletests.TestA3)
+      test_y0 (sample1.sample11.sampletests)
+      test_y0 (sample1.sample13.sampletests.TestA)
+      test_y0 (sample1.sample13.sampletests)
+      test_y0 (sample1.sampletests.test1.TestA)
+      test_y0 (sample1.sampletests.test1)
+      test_y0 (sample1.sampletests.test_one.TestA)
+      test_y0 (sample1.sampletests.test_one)
     False
-

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-verbose.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-verbose.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-verbose.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -36,10 +36,13 @@
     >>> sys.argv = 'test -uv'.split()
     >>> testrunner.run(defaults)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
     ................................................................................................................................................................................................
       Ran 192 tests with 0 failures and 0 errors in 0.035 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
 If the --verbose (-v) option is used twice, then the name and location of
@@ -143,6 +146,9 @@
     ...     ]
     >>> sys.argv = 'test -q -u'.split()
     >>> testrunner.run(defaults)
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Ran 192 tests with 0 failures and 0 errors in 0.034 seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-wo-source.txt
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-wo-source.txt	2008-05-04 22:00:01 UTC (rev 86427)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/testrunner-wo-source.txt	2008-05-04 22:01:43 UTC (rev 86428)
@@ -44,15 +44,19 @@
     >>> sys.argv = ['test']
     >>> testrunner.run(mydefaults)
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test1 (unlikely_package_name.compiletest.Test)
-        test2 (unlikely_package_name.compiletest.Test)
-        test1 (unlikely_package_name.package.compiletest.Test)
-        test2 (unlikely_package_name.package.compiletest.Test)
+     test1 (unlikely_package_name.compiletest.Test)
+     test2 (unlikely_package_name.compiletest.Test)
+     test1 (unlikely_package_name.package.compiletest.Test)
+     test2 (unlikely_package_name.package.compiletest.Test)
       Ran 4 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
 If we delete the source files, it's normally a disaster:  the test runner
 doesn't believe any test files, or even packages, exist.  Note that we pass
 ``--keepbytecode`` this time, because otherwise the test runner would
@@ -75,15 +79,19 @@
 
     >>> testrunner.run(mydefaults, ["test", "--usecompiled"])
     Running tests at level 1
-    Running unit tests:
+    Running zope.testing.testrunner.layer.UnitTests tests:
+      Set up zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
       Running:
-        test1 (unlikely_package_name.compiletest.Test)
-        test2 (unlikely_package_name.compiletest.Test)
-        test1 (unlikely_package_name.package.compiletest.Test)
-        test2 (unlikely_package_name.package.compiletest.Test)
+     test1 (unlikely_package_name.compiletest.Test)
+     test2 (unlikely_package_name.compiletest.Test)
+     test1 (unlikely_package_name.package.compiletest.Test)
+     test2 (unlikely_package_name.package.compiletest.Test)
       Ran 4 tests with 0 failures and 0 errors in N.NNN seconds.
+    Tearing down left over layers:
+      Tear down zope.testing.testrunner.layer.UnitTests in N.NNN seconds.
     False
 
+
 Remove the temporary directory:
 
     >>> shutil.rmtree(directory_with_tests)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.