我有一些循环中断言的测试,每个断言都有点像单独的测试,我不希望以前的断言的输出污染当前失败断言的错误日志。
def test_foos(captured):
foos = [] # some data
for foo, bar in foos:
captured.clear()
assert logic(foo) == bar
我找到了caplog.clear
但似乎不起作用。
最佳答案
Parametrize your test 。传递 foos
作为参数,pytest 将多次运行测试 assert
行,记录成功/失败,就好像每次都是单独的测试一样。
import pytest
testdata = [
(3,9),
(4,16),
(5,25)
]
@pytest.mark.parametrize("x,expected", testdata)
def test_foos(x, expected):
assert logic(foo) == bar # in the example, say logic squares the input
关于python - 如何清除多个断言语句之间捕获的 stdout/stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56187165/