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.