gpt4 book ai didi

python - Pytest:将一个 fixture 传递给另一个

转载 作者:太空狗 更新时间:2023-10-30 02:52:38 25 4
gpt4 key购买 nike

Pytest 中是否可以将一个 fixture 对象传递给另一个对象? ?例如,假设我想要两个 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 inside model,这让我很困惑。

此用例是一些测试需要访问原始 arr 本身,而其他测试需要访问模型的情况。

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

最佳答案

糟糕,我的示例 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)

也可以创建一个具有各种类方法的类,然后从固定装置中返回它。然后测试可以调用单独的类方法或访问类属性来访问更大的共享状态 block 。非常好。

关于python - Pytest:将一个 fixture 传递给另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52568619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com