gpt4 book ai didi

pytest - 除了在 py.test 类中为每个变量创建一个 fixture 之外,还有其他选择吗?

转载 作者:行者123 更新时间:2023-12-04 16:45:08 25 4
gpt4 key购买 nike

我想在我所有的 py.test 类方法中使用一些公共(public)数据,并且只在该类中使用,例如

n_files = 1000
n_classes = 10
n_file_per_class = int(n_files / n_classes)

我发现我可以使用固定装置,例如:

class TestDatasplit:

@pytest.fixture()
def n_files(self):
return 1000

@pytest.fixture()
def n_classes(self):
return 10

@pytest.fixture()
def n_files_per_class(self, n_files, n_classes):
return int(n_files / n_classes)

def test_datasplit_1(self, n_files):
assert n_files == 1000

def test_datasplit(self, n_files_per_class):
assert n_files_per_class == 100

但在这里我需要为我的所有变量创建一个 fixture ,但这看起来很冗长(我有超过 3 个变量)...

在 py.test 类中创建一堆共享变量的最佳方法是什么?

最佳答案

您的测试似乎不会改变这些值,因此您可以使用模块级或类级常量。 Pytest fixtures 可以为每个测试提供一个单独的值副本,这样当一个或多个测试改变值时,测试不会开始相互依赖(或无意中使彼此失败)。

关于pytest - 除了在 py.test 类中为每个变量创建一个 fixture 之外,还有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37613154/

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