Labs ICT
โญ Pro Login

Test Runner & TextTestRunner

Running tests with different runners

Test Runner & TextTestRunner

A test runner executes tests and produces output. TextTestRunner is the default runner that prints results to the console. You can create custom runners for different output formats.

Default Runner

import unittest

# Simplest way to run tests
if __name__ == '__main__':
    unittest.main()

# With verbosity
if __name__ == '__main__':
    unittest.main(verbosity=2)

Custom TextTestRunner

import unittest
import sys

# Custom output stream
with open('test_results.txt', 'w') as f:
    runner = unittest.TextTestRunner(
        stream=f,
        verbosity=2,
        descriptions=True,
        encoding='utf-8'
    )
    suite = unittest.TestLoader().discover('tests')
    result = runner.run(suite)

Runner Options

  • stream โ€” Output stream (default: sys.stderr).
  • descriptions โ€” Show test descriptions (default: True).
  • verbosity โ€” Output detail level (1 or 2).
  • failfast โ€” Stop on first failure (default: False).
  • buffer โ€” Capture stdout/stderr during tests (default: False).

Key Takeaway

TextTestRunner is the standard test runner for console output. Customize its behavior with verbosity, output streaming, and fail-fast options for different testing needs.

๐Ÿงช Quick Quiz

TextTestRunner outputs test results to: