Yes, i general you are right. I meant following case, please look at my example
Suppose i have following simple test case: import unittest class SomeTest(unittest.TestCase): def testAdd(self): self.assertEqual(2+2,4) if __name__=="__main__": unittest.TextTestRunner().run(SomeTest()) this code produce following exception: ValueError: no such test method in <class '__main__.SomeTest'>: runTest Because default test method name is "run", but TestCase class have constructor parameter testMethod with default value "runTest" not "run"! As result i always should explicitly pass testMethod name when create object of test case class: unittest.TextTestRunner().run(SomeTest("run")) Why i should do this? 2007/5/7, Gabriel Genellina <[EMAIL PROTECTED]>:
En Sun, 06 May 2007 22:17:44 -0300, Vyacheslav Maslov <[EMAIL PROTECTED]> escribió: > i have question related to python's unit testing framework. > > Take a look at unittest.TestCase class. The main method which contains > all > code related to test case execution have name "run". But in the same time > constructor of unittest.TestCase class have param methodName with default > value "runTest", not "run"! Why? This leads to AttributeError exception > if i > do not explicitly set methodName to "run" during TestCase initialization. No: method run is used by the framework, it internally calls the setUp, tearDown, etc. You don't have to override run (you must not override run!), instead, you provide the runTest method in your class. Furthermore, instead of many similar TestCase classes, you can write a single class with many methods named testXXX, and they will be found and used by a TestLoader. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
-- http://mail.python.org/mailman/listinfo/python-list