| concurrencytest | |
| =============== | |
|  | |
| Python testtools extension for running unittest suites concurrently. | |
| ---- | |
| Install from PyPI: | |
| ``` | |
| pip install concurrencytest | |
| ``` | |
| ---- | |
| Requires: | |
| * [testtools](https://pypi.python.org/pypi/testtools) : `pip install testtools` | |
| * [python-subunit](https://pypi.python.org/pypi/python-subunit) : `pip install python-subunit` | |
| ---- | |
| Example: | |
| ```python | |
| import time | |
| import unittest | |
| from concurrencytest import ConcurrentTestSuite, fork_for_tests | |
| class SampleTestCase(unittest.TestCase): | |
| """Dummy tests that sleep for demo.""" | |
| def test_me_1(self): | |
| time.sleep(0.5) | |
| def test_me_2(self): | |
| time.sleep(0.5) | |
| def test_me_3(self): | |
| time.sleep(0.5) | |
| def test_me_4(self): | |
| time.sleep(0.5) | |
| # Load tests from SampleTestCase defined above | |
| suite = unittest.TestLoader().loadTestsFromTestCase(SampleTestCase) | |
| runner = unittest.TextTestRunner() | |
| # Run tests sequentially | |
| runner.run(suite) | |
| # Run same tests across 4 processes | |
| suite = unittest.TestLoader().loadTestsFromTestCase(SampleTestCase) | |
| concurrent_suite = ConcurrentTestSuite(suite, fork_for_tests(4)) | |
| runner.run(concurrent_suite) | |
| ``` | |
| Output: | |
| ``` | |
| .... | |
| ---------------------------------------------------------------------- | |
| Ran 4 tests in 2.003s | |
| OK | |
| .... | |
| ---------------------------------------------------------------------- | |
| Ran 4 tests in 0.504s | |
| OK | |
| ``` |