Search code examples
pythonunit-testingpytest

Does pytest parametrized test work with unittest class based tests?


I've been trying to add parametrized @pytest.mark.parametrize tests to a class based unittest.

class SomethingTests(unittest.TestCase):
    @pytest.mark.parametrize(('one', 'two'), [
        (1, 2), (2, 3)])
    def test_default_values(self, one, two):
        assert one == (two + 1)

But the parametrized stuff didn't kick in:

TypeError: test_default_values() takes exactly 3 arguments (1 given)

I've switched to simple class based tests (without unittest). But I'd like to know if anyone tried it and it worked.


Solution

  • According to pytest documentation:

    unittest.TestCase methods cannot directly receive fixture function arguments as implementing that is likely to inflict on the ability to run general unittest.TestCase test suites.