Labs ICT
โญ Pro Login

Test Suites & TestLoader

Organizing tests into suites and loading them

Test Suites & TestLoader

A TestSuite is a collection of test cases and other test suites that are grouped together. TestLoader discovers and loads tests into suites for execution.

Creating a TestSuite

import unittest

# Create individual test cases
suite = unittest.TestSuite()
suite.addTest(TestUserCreation("test_create_user"))
suite.addTest(TestUserDeletion("test_delete_user"))

# Run the suite
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)

Using TestLoader

loader = unittest.TestLoader()

# Load all tests from a class
suite = loader.loadTestsFromTestCase(TestMath)

# Load all tests from a module
suite = loader.loadTestsFromModule(test_user)

# Load tests by name
suite = loader.loadTestsFromName("test_user.TestUser")

# Load from multiple sources
suite = unittest.TestSuite([
    loader.loadTestsFromTestCase(TestUser),
    loader.loadTestsFromTestCase(TestOrder),
])

Composing Suites

def build_suite():
    loader = unittest.TestLoader()
    suite = unittest.TestSuite()

    # Add tests from different modules
    suite.addTests(loader.loadTestsFromModule(test_auth))
    suite.addTests(loader.loadTestsFromModule(test_api))
    suite.addTests(loader.loadTestsFromModule(test_models))

    return suite

if __name__ == '__main__':
    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(build_suite())

Key Takeaway

TestSuite groups tests for organized execution, and TestLoader discovers and loads tests from classes, modules, or by name. Together they give you full control over which tests run and in what order.

๐Ÿงช Quick Quiz

What does a TestSuite do?