Tôi đang sử dụng một số joblib.Memory
để lưu các tính toán đắt tiền khi chạy thử nghiệm với py.test
. Mã tôi đang sử dụng sẽ giảm xuống như sau,Xóa các tệp được lưu trong bộ nhớ cache sau khi chạy 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
hoạt động tốt. Tôi biết điều này có thể được thực hiện một cách thanh lịch hơn với lịch thi đấu tmpdir_factory
nhưng điều đó không đúng.
Vấn đề tôi đang gặp là làm thế nào để làm sạch các tập tin lưu trữ một lần tất cả các bài kiểm tra chạy,
- là nó có thể chia sẻ một biến toàn cầu trong số tất cả các bài kiểm tra (trong đó sẽ chứa ví dụ như một danh sách các đường dẫn đến các đối tượng được lưu trong bộ nhớ cache)?
- là có một cơ chế trong py.test để gọi một số lệnh sau khi tất cả các thử nghiệm được chạy (cho dù họ thành công hay không)?
Cảm ơn, đó là những gì tôi đang tìm kiếm. Đồng ý với bạn về các biến toàn cục trong thử nghiệm .. – rth