New submission from Martin Panter: The documentation for "unittest.TestCase" says "the standard implementation of the default 'methodName', runTest(), will run every method starting with 'test' as an individual test". However:
>>> from unittest import * >>> class Test(TestCase): ... def test_method(self): pass ... >>> t = Test() >>> t.run() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.4/unittest/case.py", line 552, in run testMethod = getattr(self, self._testMethodName) AttributeError: 'Test' object has no attribute 'runTest' After further experimentation, I see that if my test method is called "runTest", it can be automatically discovered, but only if there are no other test- prefixed methods. Perhaps you could drop the end of the second paragraph for TestCase, so that it just reads: Each instance of TestCase will run a single base method: the method named "methodName". I think the details about the test- prefix and counting results are covered elsewhere, and in most uses you wouldn't instantiate a TestCase yourself, so changing the method name is irrelevant. Also, perhaps under "TestLoader.loadTestsFromTestCase" it should say: If no methods with the usual name prefix are found, but the "runTest" method is implemented, there will be a single test case using that method. ---------- assignee: docs@python components: Documentation messages: 224907 nosy: docs@python, vadmium priority: normal severity: normal status: open title: There is no standard TestCase.runTest implementation versions: Python 3.4, Python 3.5 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue22153> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com