這個套件主要是搭配 pytest 使用的。
pytest 是一套測試框架,簡單的說,就是用來寫測試案例用的。Python 也有其他的測試框架,像是 unittest、doctest、nose,但 pytest 的優勢在於簡單,而且原有用 unittest 寫的測試案例不需要重寫,可以納入測試,在目前來說,可以說是很流行的測試框架。
專案文件網址:https://pytest-django.readthedocs.io/en/latest/
poetry add pytest-django
首先必須要撰寫 pytest.ini
[pytest]
addopts = --ds=myproject.settings --reuse-db
python_files = tests.py test_*.py
addopts 是表示要傳遞給 pytest 使用的參數: --ds=myproject.settings
是指定使用哪個 Django settings , --reuse-db
是指在測試時要重複使用資料庫,不另行建立以加快速度。
python_files 是表示測試案例在哪些檔案裡,這裡就是指要找尋 tests.py 與 test_*.py 這些檔案。
撰寫完,使用 pytest
就可以進行測試了。
坦白說,寫測試案例時,我是遵循 Django 文件的 Writing and running tests 來撰寫測試案例,也就是傳統的 unittest 。測試案例必須繼承 django.test.TestCase ,然後在測試案例類別裡寫 setUp(), test_xxx() 等方法來進行測試。只有在某些情況下,才使用 pytest 的寫法。
對我來說,pytest 很方便,也少打不少字,使用 pytest-django 只是因為它讓 pytest 可以認得 django 專案的設定。
字數不太夠,決定加映一個可以加強 pytest 顯示的 plugin:pytest-sugar 。
使用 pytest-sugar 很簡單,安裝就可以了。
poetry add pytest-sugar
在執行 pytest 時,就會顯示出漂亮的檢查結果,對,顯示的漂亮就是開心 ?
那如果想要以原來的方式呈現,可以用 pytest -p no:sugar
。
pytest 容易上手,入門簡單,有豐富的 plugin、教學網站跟書,也支援用 unittest、 nose 等測試框架撰寫的測試案例。最重要的是,單是輸入 pytest 就可以很方便的進行測試。