想象一下我们有下面的夹具
@pytest.fixture()
def read_file(self):
df =pd.read_excel(Path+file_name)
return df基本上,它只是读取一个文件并将其作为一个数据文件返回。然而,根据我的理解,如果我们在多个测试中使用相同的夹具,它将一次又一次地执行相同的过程,这将带来更高的成本。有没有一种方法可以在我所拥有的测试中读取该文件,并以某种方式将该数据存储在内存中,以便它也可以用于其他测试?
发布于 2022-07-14 23:23:15
您可以创建一个Singletone对象,它保存文件的数据。当您第一次创建该对象(在def init中)时,它将读取该文件。
因为Singletone只创建一次,所以文件将只读取一次。您可以通过使用import从任何您想要的测试中接近它。
您可以在这里阅读有关单字的文章:在Python中创建单例
发布于 2022-07-15 07:41:57
将夹具的作用域设置为session。这样,只能调用一次夹具,并且任何测试都将接收到夹具返回的对象。
@pytest.fixture(scope="session")
def read_file(self):
return pd.read_excel(Path+file_name)但是,请注意,如果夹具返回可变对象,一个测试可能会更改它并影响其他测试的结果。
https://stackoverflow.com/questions/72987367
复制相似问题