Parametrize pytest fixture(参数化火试夹具)
本文介绍了参数化火试夹具的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
就我从文档中了解到的有关pytest装置参数化的内容而言,它使用给定的参数创建装置的副本,从而使用不同的副本调用需要该装置的每个测试。
我的需求有点不同。假设有一个装置:
@pytest.fixture
def sample_foo():
return Foo(file_path='file/path/test.json')
def test1(sample_foo):
pass
def test2(sample_foo):
pass
问题是测试test1
和test2
需要类Foo
的相同实例,但file_path
所以目前我这样做:
def build_foo(path):
return Foo(file_path=path)
def test1():
sample_foo = build_foo('file/path/some.json')
def test2():
sample_foo = build_foo('file/path/another.json')
这看起来有点代码重复。我可以为每个文件创建单独的装置,但这看起来更糟。看起来每个测试都需要自己唯一的文件,所以也许可以通过查看请求装置的测试函数的名称来确定文件的名称,从而解决这个问题。但这不能保证。
推荐答案
您需要fixture parameters
fixture函数可以参数化,在这种情况下,它们将被多次调用,每次执行依赖测试集,即依赖于此fixture的测试。
def build_foo(path):
return Foo(file_path=path)
@pytest.fixture(params=["file/path/some.json", "file/path/another.json"])
def file_path(request):
return request.param
def test(file_path):
sample_foo = build_foo(file_path)
也许您可以直接
def test(file_path):
sample_foo = Foo(file_path)
这篇关于参数化火试夹具的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:参数化火试夹具


猜你喜欢
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- 如何将一个类的函数分成多个文件? 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12
- 沿轴计算直方图 2022-01-01