我知道不可能在夹具中添加更多测试,因为它们在测试时运行,并且测试是在收集时生成的。
但我希望能够根据测试函数的路径(测试函数所在的模块)生成测试参数。
基本上,我想要这样的东西:
@pytest.mark.parametrize(
argnames='letter',
argvalues=lambda request: list(zip(request.fspath)),
indirect=True
)
def test_foo(letter):
assert letter
它应该打印一个模块的路径,一个字母一个字母地作为函数的参数:
foo[/]
foo[t]
foo[e]
foo[s]
foo[t]
foo[.]
foo[p]
foo[y]
这段代码(上面)肯定不起作用,但可能有一种方法可以使用 fspath 作为参数化的参数?