我在使用py.test
運行測試時使用joblib.Memory
來緩存昂貴的計算。我正在使用的代碼還原爲以下,在py.test運行後刪除緩存的文件
from joblib import Memory
memory = Memory(cachedir='/tmp/')
@memory.cache
def expensive_function(x):
return x**2 # some computationally expensive operation here
def test_other_function():
input_ds = expensive_function(x=10)
## run some tests with input_ds
它工作正常。我知道這可能會更優雅地與tmpdir_factory
夾具完成,但那不是重點。
我遇到的問題是如何清除緩存文件,一旦所有的測試運行,
- 是可以共享所有測試中一個全局變量(它將包含如路徑到列表緩存的對象)?
- 在py.test中是否有一種機制在所有測試運行後調用某個命令(無論它們是否成功)?
謝謝,這就是我一直在尋找。同意你關於測試中的全局變量.. – rth