在我的Django項目中,我使用sqlite數據庫來運行測試。由於它只使用內存,它比MySQL快得多,但速度還不夠快。在測試期間,只使用4個處理器中的一個,並且消耗的內存不多。所以,我想在內存中有4個sqlite數據庫並行運行4個測試。如何在Django中並行運行測試?
有沒有人試過嗎?
在我的Django項目中,我使用sqlite數據庫來運行測試。由於它只使用內存,它比MySQL快得多,但速度還不夠快。在測試期間,只使用4個處理器中的一個,並且消耗的內存不多。所以,我想在內存中有4個sqlite數據庫並行運行4個測試。如何在Django中並行運行測試?
有沒有人試過嗎?
您可以輕鬆地分割爲上parrallalel應用程序在Linux上通過測試:
$ python manage.py test cms & \
python manage.py test blog & \
python manage.py test store & \
python manage.py test registration
$
可能是有益的大項目有很多的應用程序,最好是在運行測試每四個應用一個bash腳本。
您可以使用此處描述的Django和Twisted的並行測試運行器:http://www.tomaz.me/2011/04/03/making-django-and-twisted-tests-faster.html(源代碼位於此處https://github.com/Kami/parallel-django-and-twisted-test-runner - 鏈接在帖子末尾)。您可以按照Django文檔中所述在測試中使用它。
還有一個鼻子平行測試跑步者。
由於Django 1.9可以通過Django的內置單元測試功能並行運行測試。
Django Docs:https://docs.djangoproject.com/en/1.9/ref/django-admin/#django-admin-option---parallel
'./manage.py test --parallel' – Wtower 2016-04-02 10:33:36
不起作用。在後臺測試表現奇怪,其中一些停止工作。此外,即使他們工作,輸出也是混亂的(不是一個大問題)。最後,大多數應用程序完成速度很快,而只有兩個處理器最終處理兩個沉重的應用程序... – lfagundes 2011-03-18 20:02:36
我很奇怪,後臺測試行爲奇怪,你有更多關於這個問題的數據?我看到你想要的某種方式是通過測試來分配負載測試...很有趣,不幸的是,我不清楚如何解決你的需求。如果您發現有趣的事情,請更新此問題。 – 2011-03-19 16:19:44
您可以嘗試使用Python的處理庫並行運行測試並捕獲輸出。另外,你可能會想爲每一個單獨使用一個sqlite數據庫(通過--settings來定義這個數據庫)來避免上述的猴子業務。 – 2011-07-03 18:04:12