unittest expectedFailure and xfail

Episode 166 · October 14th, 2021 · 6 mins 23 secs

About this Episode

xfail isn't just for pytest tests. Python's unittest has @unittest.expectedFailure.

In this episode, we cover:

  • using @unittest.expectedFailure
  • the results of passing and failing tests with expectedFailure
  • using pytest as a test runner for unittest
  • using pytest markers on unittest tests

Docs for expectedFailure:
https://docs.python.org/3/library/unittest.html#skipping-tests-and-expected-failures

Some sample code.
unittest only:

import unittest

class ExpectedFailureTestCase(unittest.TestCase):

    @unittest.expectedFailure
    def test_fail(self):
        self.assertEqual(1, 0, "broken")

    @unittest.expectedFailure
    def test_pass(self):
        self.assertEqual(1, 1, "not broken")

unittest with pytest markers:

import unittest
import pytest


class ExpectedFailureTestCase(unittest.TestCase):

    @pytest.mark.xfail
    def test_fail(self):
        self.assertEqual(1, 0, "broken")

    @pytest.mark.xfail
    def test_pass(self):
        self.assertEqual(1, 1, "not broken")

Full Transcript