首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只从夹具读取一次文件

只从夹具读取一次文件
EN

Stack Overflow用户
提问于 2022-07-14 22:43:16
回答 2查看 77关注 0票数 -1

想象一下我们有下面的夹具

代码语言:javascript
复制
@pytest.fixture()
def read_file(self):
    df =pd.read_excel(Path+file_name)
    return df

基本上,它只是读取一个文件并将其作为一个数据文件返回。然而,根据我的理解,如果我们在多个测试中使用相同的夹具,它将一次又一次地执行相同的过程,这将带来更高的成本。有没有一种方法可以在我所拥有的测试中读取该文件,并以某种方式将该数据存储在内存中,以便它也可以用于其他测试?

EN

回答 2

Stack Overflow用户

发布于 2022-07-14 23:23:15

您可以创建一个Singletone对象,它保存文件的数据。当您第一次创建该对象(在def init中)时,它将读取该文件。

因为Singletone只创建一次,所以文件将只读取一次。您可以通过使用import从任何您想要的测试中接近它。

您可以在这里阅读有关单字的文章:在Python中创建单例

票数 0
EN

Stack Overflow用户

发布于 2022-07-15 07:41:57

将夹具的作用域设置为session。这样,只能调用一次夹具,并且任何测试都将接收到夹具返回的对象。

代码语言:javascript
复制
@pytest.fixture(scope="session")
def read_file(self):
    return pd.read_excel(Path+file_name)

但是,请注意,如果夹具返回可变对象,一个测试可能会更改它并影响其他测试的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72987367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档