我必须读取一个 CSV 文件,并且对于每一行中的每个组合都需要运行一些方法。我希望将每一行视为一个测试用例。是否可以将行作为参数发送 - pytest 参数化我的测试用例?你能给我一些关于如何做到这一点的想法吗?
这是伪代码:
class test_mytest:
def test_rows:
for row in csvreader:
run_method(row)
for onecol in row:
run_method2(onecol)
我曾尝试阅读pytest
文档,但对我来说并不清楚。
这是我使用 generate_tests hook for row 作为参数所做的事情。我想知道如何对内部 for 循环函数做同样的事情 - 这个内部循环也应该作为测试用例收集
def pytest_generate_tests(metafunc):
read_csvrows()
for funcargs in metafunc.cls.params[metafunc.function.__name__]:
# schedule a new test function run with applied **funcargs
metafunc.addcall(funcargs=funcargs)
class TestClass:
params = {
'test_rows': rows,
}
def test_rows:
run_method(row)
for onecol in row:
test_method2(onecol)
现在,我需要为调用 test_method2 的 -for 循环生成报告(它是 csv 文件每一行中列中元素列表的参数化方法)。Pytest 也需要收集这些作为测试用例。
感谢您的帮助。谢谢