I'm getting stuck with some unittests.
Here's the simplest example I could come up with:
#testito.py
import unittest
class Prueba(unittest.TestCase):
def setUp(self):
pass
def printsTrue(self):
self.assertTrue(True)
if __name__=="__main__":
unittest.main()
Problem is, running this has no effect:
$ python testito.py
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
I'm scratching my head as I don't see any problem with the code above. It happened with a couple of tests now and I don't really know what to do next. Any idea?
1 Answer 1
By default, only functions whose name that start with test are run:
class Prueba(unittest.TestCase):
def setUp(self):
pass
def testPrintsTrue(self):
self.assertTrue(True)
From the unittest basic example:
A testcase is created by subclassing
unittest.TestCase. The three individual tests are defined with methods whose names start with the letterstest. This naming convention informs the test runner about which methods represent tests.
10 Comments
TestLoader subclass, overriding the getTestCaseNames() method. The current implementation makes this a little simpler; you can also set the testMethodPrefix attribute on an existing loader.unittest.loader do just that.