iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 20
0
Modern Web

加速你的 Django 網站開發 - Django 的好用套件系列 第 20

20. pytest-django

這個套件主要是搭配 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-sugar

字數不太夠,決定加映一個可以加強 pytest 顯示的 plugin:pytest-sugar 。

使用 pytest-sugar 很簡單,安裝就可以了。

poetry add pytest-sugar

在執行 pytest 時,就會顯示出漂亮的檢查結果,對,顯示的漂亮就是開心 ?

https://ithelp.ithome.com.tw/upload/images/20200920/20012434BOCdrqLQ9r.png

那如果想要以原來的方式呈現,可以用 pytest -p no:sugar

結語

pytest 容易上手,入門簡單,有豐富的 plugin、教學網站跟書,也支援用 unittest、 nose 等測試框架撰寫的測試案例。最重要的是,單是輸入 pytest 就可以很方便的進行測試。


上一篇
19. django-mptt
下一篇
21. django-pdfkit
系列文
加速你的 Django 網站開發 - Django 的好用套件30

尚未有邦友留言

立即登入留言