Я использую 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 для вызова некоторой команды после запуска всех тестов (независимо от того, успешны они или нет)?