pytest.mark.parameterize 不是 "finding" 个固定装置
pytest.mark.parameterize not "finding" fixtures
我正在为一个小型库编写测试,在听到很多关于它的好消息后我决定使用 py.test。
但是,pytest.mark.parameterize
给我带来了一些问题。起初,我想也许我只是不匹配一些 parens 然后它就去别处寻找固定装置了。所以我决定从给定的参数化示例开始:
@pytest.mark.parametrize("input,expected", [
("3+5", 8),
("2+4", 6),
("6*9", 42),
])
def test_eval(input, expected):
assert eval(input) == expected
但这给出了同样的错误:
fixture 'input' not found
available fixtures: capfd, pytestconfig, recwarn, capsys, tmpdir, monkeypatch
use 'py.test --fixtures [testpath]' for help on them.
我停止使用谷歌搜索,但找不到任何适用的答案。关于如何处理这个问题有什么想法吗?
编辑:我想知道 Python/py.test 版本是有帮助的。
Python 3.4.0 和 py.test 2.6.4
我刚刚逐字尝试了您的示例,它在 pytest 2.6.4 中运行良好。也许你拼错了 parametrize
?您在标题中拼写错误,这是一个常见错误,如 this issue.
中所示
这不是同一个原因,但这是 google 上“找不到 pytest 参数夹具”的第一个结果,这是我自然 google 与 OP 相同的错误:
E fixture 'blah' not found
在我的例子中,这是由于一个愚蠢的拼写错误(我太久没发现了!),缺少装饰器中的@:
pytest.mark.parametrize("blah", [50, 100])
def test_something(blah):
assert blah > 0
我正在为一个小型库编写测试,在听到很多关于它的好消息后我决定使用 py.test。
但是,pytest.mark.parameterize
给我带来了一些问题。起初,我想也许我只是不匹配一些 parens 然后它就去别处寻找固定装置了。所以我决定从给定的参数化示例开始:
@pytest.mark.parametrize("input,expected", [
("3+5", 8),
("2+4", 6),
("6*9", 42),
])
def test_eval(input, expected):
assert eval(input) == expected
但这给出了同样的错误:
fixture 'input' not found
available fixtures: capfd, pytestconfig, recwarn, capsys, tmpdir, monkeypatch
use 'py.test --fixtures [testpath]' for help on them.
我停止使用谷歌搜索,但找不到任何适用的答案。关于如何处理这个问题有什么想法吗?
编辑:我想知道 Python/py.test 版本是有帮助的。
Python 3.4.0 和 py.test 2.6.4
我刚刚逐字尝试了您的示例,它在 pytest 2.6.4 中运行良好。也许你拼错了 parametrize
?您在标题中拼写错误,这是一个常见错误,如 this issue.
这不是同一个原因,但这是 google 上“找不到 pytest 参数夹具”的第一个结果,这是我自然 google 与 OP 相同的错误:
E fixture 'blah' not found
在我的例子中,这是由于一个愚蠢的拼写错误(我太久没发现了!),缺少装饰器中的@:
pytest.mark.parametrize("blah", [50, 100])
def test_something(blah):
assert blah > 0