Labs ICT
โญ Pro Login

TestResult & TestOutcome

Understanding test results and outcomes

TestResult & TestOutcome

TestResult stores the results of running tests, including errors, failures, and successes. You can inspect these results to generate reports or make decisions.

Inspecting TestResult

import unittest

class TestResultDemo(unittest.TestCase):
    def test_pass(self):
        self.assertTrue(True)

    def test_fail(self):
        self.assertEqual(1, 2)

    def test_error(self):
        raise ValueError("Something went wrong")

# Running and checking results
loader = unittest.TestLoader()
suite = loader.loadTestsFromTestCase(TestResultDemo)
result = unittest.TextTestRunner(verbosity=2).run(suite)

print(f"Tests run: {result.testsRun}")
print(f"Failures: {len(result.failures)}")
print(f"Errors: {len(result.errors)}")
print(f"Skipped: {len(result.skipped)}")

Accessing Failure Details

# result.failures contains (test, traceback_string) tuples
for test, traceback in result.failures:
    print(f"FAILED: {test}")
    print(traceback)

# result.errors contains (test, traceback_string) tuples
for test, traceback in result.errors:
    print(f"ERROR: {test}")
    print(traceback)

# result.skipped contains (test, reason) tuples
for test, reason in result.skipped:
    print(f"SKIPPED: {test} - {reason}")

wasSuccessful()

result = unittest.TextTestRunner().run(suite)

if result.wasSuccessful():
    print("All tests passed!")
else:
    print(f"Failures: {len(result.failures)}")
    print(f"Errors: {len(result.errors)}")

Key Takeaway

TestResult gives you structured access to test outcomes. Use it to build custom reports, integrate with CI systems, or make pass/fail decisions in your workflow.

๐Ÿงช Quick Quiz

TestResult tracks which information about tests?