Multithreaded testing
Suppose you have to perform tests. Lots of tests. Functional tests, where each test could take a lot of time. Suppose also that
- you don't want to wait three days until your tests are done
- you have a massively parallel architecture available
- you are using python unittest framework
- you enjoy colors
What would you do?
You install testoob. This thing is life-changing, believe me. So, let's see an example. Suppose you have this test:
import unittest
import time
class MyTestCase(unittest.TestCase):
def testFoo(self):
time.sleep(3)
self.assertEqual(0,0)
def testBar(self):
time.sleep(5)
self.assertEqual(0,0)
if __name__ == '__main__':
unittest.main()
If you run it, the whole testcase will take 8 seconds.
..
----------------------------------------------------------------------
Ran 2 tests in 8.000s
OK
But if you install testoob, now you have a nice executable
stefano$ testoob test.py
..
----------------------------------------------------------------------
Ran 2 tests in 8.001s
OK
Here is the magic: run it with the option --threads=2 and the result is served in just 5 seconds:
stefano$ testoob --threads=2 test.py
..
----------------------------------------------------------------------
Ran 2 tests in 5.001s
OK
Ok, but what about the colors? Well, I like the testing suites that print out something green for every successful test. testoob does it, so it brings way more fun and enjoyment!
Testoob does a lot more. If you feel limited by the current unittest module, you should definitely consider to take a look at testoob.