运行测试时,它表明仅通过了1个测试。如何使用test_function,以便显示所有测试均已通过。
请注意eval()函数不带任何参数。
import pytest
def eval():
a=1 #got this value after calling some function (this can be 1,2,3 or any value)
if a ==2:
return 8
elif a == 3:
return 4
else:
return 42
@pytest.mark.parametrize("expected", [
(8),
(4),
(42),
])
def test_eval(expected):
assert eval() == expected
答案 0 :(得分:1)
好的,在评论中澄清后,a
是一个全局的……如果不是这样,那会更好。 :)
但是,如果您不能更改其签名,
import pytest
def eval():
if a == 2:
return 8
elif a == 3:
return 4
else:
return 42
@pytest.mark.parametrize(
"input_value, expected", [(2, 8), (3, 4), (4, 42)]
)
def test_eval(input_value, expected):
global a
a = input_value
assert eval() == expected
应该为您解决问题。