我的Django單元測試需要很長時間才能運行,所以我正在尋找加快速度的方法。我正在考慮安裝SSD,但我知道它也有缺點。當然,我可以用我的代碼做些事情,但我正在尋找結構性修復。即使運行單個測試也很慢,因爲每次都需要重建/南遷數據庫。所以這裏是我的主意......如何僅在內存中運行Django的測試數據庫?
因爲我知道測試數據庫總是很小,爲什麼我不能配置系統始終將整個測試數據庫保存在RAM中?切勿觸摸磁盤。我如何在Django中配置它?我寧願繼續使用MySQL因爲這是我在生產中使用的,但如果SQLite 3或其他東西使這容易,我會這樣。
SQLite或MySQL有一個選項可以完全在內存中運行嗎?應該可以配置RAM磁盤,然後配置測試數據庫以在其中存儲其數據,但我不知道如何告訴Django/MySQL爲某個數據庫使用不同的數據目錄,尤其是因爲它一直在擦除並重新創建每個運行。 (我在Mac FWIW。)
你把它放在你的settings.py中嗎? – Leopd 2010-06-23 20:34:56
是的,確切地說。我應該把它放在我的答案中!將其與SOUTH_TESTS_MIGRATE = False結合起來,你的測試應該快得多。 – Etienne 2010-06-24 19:19:01
太棒了!有了這兩個更改,我的系統中運行單個快速測試的開銷從12秒降到<100ms。 – Leopd 2010-06-24 19:58:53