I’m writing tests for a small library and I decided to use py.test after hearing so many good things about it.
However, pytest.mark.parameterize
is giving me some issues. At first, I thought maybe I just mismatched some parens and it went off looking for a fixture elsewhere. So I decided to start with the given example of parameterize:
@pytest.mark.parametrize("input,expected", [ ("3+5", 8), ("2+4", 6), ("6*9", 42), ]) def test_eval(input, expected): assert eval(input) == expected
But this gives the same error:
fixture ‘input’ not found
available fixtures: capfd, pytestconfig, recwarn, capsys, tmpdir, monkeypatch
use ‘py.test –fixtures [testpath]’ for help on them.
I went off googling, but I couldn’t find any answers that applied. Any ideas on how to approach this?
Edit: I suppose knowing which Python/py.test versions is helpful.
Python 3.4.0 and py.test 2.6.4
Advertisement
Answer
I just tried your example verbatim and it worked fine in pytest 2.6.4. Perhaps you are misspelling parametrize
? You misspelled it in the title and is a common mistake, as can be seen in this issue.