繁体   English   中英

Pytest:将一个夹具传递给另一个夹具

[英]Pytest: pass one fixture to another

是否有可能在Pytest中将一个夹具对象传递给另一个夹具对象? 例如,假设我想要两个fixture对象:一个是numpy数组,另一个是该数组的某个模型:

import pytest
import numpy as np

@pytest.fixture()
def arr():
  np.random.seed(141)
  return np.random.seed(141)

@pytest.fixture()
def model(arr):
  return arr * 2

def test_multiplication(arr, model):
  assert model == arr * 2

这里的arr是类型functionarr()在模型中是NoneType ,这让我很NoneType

这种情况的用例是某些测试需要访问raw arr本身,而其他测试则需要访问模型。

然而,要使这项工作,需要将一个夹具传递给另一个夹具(因此我们可以使用该阵列构建模型)。 这可能吗? 任何其他人可以提供的帮助将不胜感激!

哎呀,我的示例arr()函数没有定义数组! 您可以按照上面提到的方式分享灯具:

import pytest
import numpy as np

@pytest.fixture()
def arr():
  np.random.seed(141)
  return np.random.rand(100,2)

@pytest.fixture()
def model(arr):
  return arr * 2

def test_multiplication(arr, model):
  assert np.all(model == arr * 2)

也可以使用各种类方法创建一个类,然后从fixture中返回它。 然后,测试可以调用单个类方法或访问类属性,以访问更大的共享状态块。 非常好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM