Reputation: 435
I have the following test code:
class TestMyCode(unittest.TestCase):
@pytest.mark.parametrize('item', [5,4,10])
def test_valid_range(self, item):
self.assertTrue(1 <= item <= 1000)
This is not my real test this is just a minimal reproduce example.
I need to parameterised only the input which is checked against the same code.
For some reason this doesn't work I always get:
TypeError: test_valid_range() missing 1 required positional argument: 'item'
How can I fix it?
Upvotes: 1
Views: 2180
Reputation: 172407
You can't use @pytest.mark.parametrize
on unittest.TestCase methods
. PyTest has no way to pass in the parameter.
Just do:
@pytest.mark.parametrize('item', [5,4,10])
def test_valid_range(item):
self.assertTrue(1 <= item <= 1000)
Upvotes: 2