Document that docstrings are verboten for test functions.
Expand the example to show some actual test functions, and a setUp()
and tearDown() method.
diff --git a/Lib/test/README b/Lib/test/README
index 9a3244f..40837e4 100644
--- a/Lib/test/README
+++ b/Lib/test/README
@@ -48,22 +48,50 @@
start with "test_" and use lower-case names with words separated with
underscores.
+Test methods should *not* have docstrings! The unittest module prints
+the docstring if there is one, but otherwise prints the function name
+and the full class name. When there's a problem with a test, the
+latter information makes it easier to find the source for the test
+than the docstring.
+
All PyUnit-based tests in the Python test suite use boilerplate that
-looks like this:
+looks like this (with minor variations):
import unittest
from test import test_support
class MyTestCase1(unittest.TestCase):
- # define test methods here...
+
+ # Define setUp and tearDown only if needed
+
+ def setUp(self):
+ unittest.TestCase.setUp(self)
+ ... additional initialization...
+
+ def tearDown(self):
+ ... additional finalization...
+ unittest.TestCase.tearDown(self)
+
+ def test_feature_one(self):
+ # Testing feature one
+ ...unit test for feature one...
+
+ def test_feature_two(self):
+ # Testing feature two
+ ...unit test for feature two...
+
+ ...etc...
class MyTestCase2(unittest.TestCase):
- # define more test methods here...
+ ...same structure as MyTestCase1...
+
+ ...etc...
def test_main():
- suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(MyTestCase1))
- suite.addTest(unittest.makeSuite(MyTestCase2))
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(MyTestCase1))
+ suite.addTest(unittest.makeSuite(MyTestCase2))
+ ...add more suites...
test_support.run_suite(suite)
if __name__ == "__main__":