Skip to content

Organizing Tests into Test Suites

Why test suites?

Suites let you:

  • group tests by feature
  • run a subset for smoke/regression
  • create custom runners

Example suite

suite_example.py
import unittest
 
 
class TestA(unittest.TestCase):
    def test_one(self):
        self.assertTrue(True)
 
 
class TestB(unittest.TestCase):
    def test_two(self):
        self.assertEqual(1 + 1, 2)
 
 
def load_suite():
    suite = unittest.TestSuite()
    suite.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestA))
    suite.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestB))
    return suite
 
 
if __name__ == "__main__":
    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(load_suite())
suite_example.py
import unittest
 
 
class TestA(unittest.TestCase):
    def test_one(self):
        self.assertTrue(True)
 
 
class TestB(unittest.TestCase):
    def test_two(self):
        self.assertEqual(1 + 1, 2)
 
 
def load_suite():
    suite = unittest.TestSuite()
    suite.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestA))
    suite.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestB))
    return suite
 
 
if __name__ == "__main__":
    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(load_suite())

Tip

In most modern codebases, you’ll rely on discovery.

Suites are most useful for curated runs.

If this helped you, consider buying me a coffee ☕

Buy me a coffee

Was this page helpful?

Let us know how we did