iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Python

利用Python完成自動化測試專案系列 第 20

D20 pytest 插件(3)

  • 分享至 

  • xImage
  •  

今天要把插件介紹完。

pytest-sugar

正常情況下, pytest 輸出的結果都是黑白的。使用此插件可以把輸出結果變成彩色,且進度條進一步美化。

https://ithelp.ithome.com.tw/upload/images/20241007/20169358lIwd4Dd10w.jpg

pytest-flakes

要講這個插件之前要先講到 flake8,它是檢查 code 的工具,而在 pytest 中它也是負責靜態檢查
,例如檢查是否有位使用到的 import。它的使用方法如下:

pytest --flakes

pytest-pycodestyle

它是基於之前的文章有提到的 PEP8 規範來進行檢查的插件,與上面提到的 flakes 不同的地方是這個插件比較注重在 coding style 的部分。例如排版或縮排等。

pytest-freezegun

有時候在執行測試時會很注重特定時間,例如要固定在下午三點整進行測試,這個時候可以使用這個插件。它可以把系統時間固定在指定的時間。指定時間的方法有以下幾種:

  • 使用 mark
@pytest.mark.freeze_time("2024-10-1")

透過 pytest 的 mark 固定時間。

  • 使用 freezer fixture
freezer.move_to("2017-11-23")

透過 freezer 來改變時間。

pytest-timeout

在作測試的時候常常會遇到不穩定的 case,這些 case 會導致測試通過率的浮動,這個時候我們可以使用 pytest-timeout,設定指定時間問完成測試才會導致 fail。使用方式如下:

pytest --timeout=10

這樣就把所有測試的超時時間統一設成 10 秒。也可以指定特定的 case 設定超時時間:

@pytest.mark.timeout(60)

透過 mark 在特別容易超時的 case 上面設定超時時間。增加整體測試的速度。


上一篇
D19 pytest 插件(2)
下一篇
D21 實作發文測試
系列文
利用Python完成自動化測試專案23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言