我想对我的(python)程序的一个功能进行一些测试,这个功能计算量非常大。我可以运行代码,将输出存储在pandas.DataFrame
中,挑选df
并使用我的包进行分发,以便用户可以运行测试。但是我认为这违背了单元测试的原则,即测试应该独立于外部源和自包含。
另一个想法是,如果我将pickle文件作为字符串存储在可导入的python类中,然后动态编写pickle文件并在测试后清理它。这可能吗?如果可以,我该怎么做?
以下是一小段代码,只需在当前工作目录中将df
写入pickle.pickle
即可。
import pickle
import os
import pandas
df = pandas.DataFrame([1,2,3,4,5,6])
filename = os.path.join(os.getcwd(), 'pickle.pickle')
df.to_pickle(filename)
那么有可能以某种方式获得pickle的字符串版本,以便我可以将它存储在类中吗?
答案 0 :(得分:1)
然后可能以某种方式得到一个字符串版本 泡菜,以便我可以把它存放在一个班级?
只需阅读完整文件:
with open(filename, "rb") as f:
data = f.read()
然后,如果您需要,可以使用loads
unpickled = pickle.loads(data)