在派泰斯特中,是否可以将一个夹具对象传递给另一个夹具对象?例如,假设我想要有两个治具对象:一个是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是function类型,而arr()是模型内部的NoneType,这让我很困惑。
在这种情况下,一些测试需要访问原始arr本身,而另一些测试则需要访问模型。
但是,要使这种工作正常进行,需要将一个夹具传递给另一个夹具(这样我们就可以使用数组构建模型)。这个是可能的吗?任何其他人能提供的帮助都将不胜感激!
发布于 2018-09-29 13:21:15
哇,我的示例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)您还可以使用各种类方法创建一个类,然后从一个夹具中返回这个类。然后,测试可以调用单个类方法或访问类属性,以获得对更大块共享状态的访问。非常好。
https://stackoverflow.com/questions/52568619
复制相似问题