今天要把插件介紹完。
正常情況下, pytest 輸出的結果都是黑白的。使用此插件可以把輸出結果變成彩色,且進度條進一步美化。
要講這個插件之前要先講到 flake8,它是檢查 code 的工具,而在 pytest 中它也是負責靜態檢查
,例如檢查是否有位使用到的 import。它的使用方法如下:
pytest --flakes
它是基於之前的文章有提到的 PEP8 規範來進行檢查的插件,與上面提到的 flakes 不同的地方是這個插件比較注重在 coding style 的部分。例如排版或縮排等。
有時候在執行測試時會很注重特定時間,例如要固定在下午三點整進行測試,這個時候可以使用這個插件。它可以把系統時間固定在指定的時間。指定時間的方法有以下幾種:
@pytest.mark.freeze_time("2024-10-1")
透過 pytest 的 mark 固定時間。
freezer.move_to("2017-11-23")
透過 freezer 來改變時間。
在作測試的時候常常會遇到不穩定的 case,這些 case 會導致測試通過率的浮動,這個時候我們可以使用 pytest-timeout,設定指定時間問完成測試才會導致 fail。使用方式如下:
pytest --timeout=10
這樣就把所有測試的超時時間統一設成 10 秒。也可以指定特定的 case 設定超時時間:
@pytest.mark.timeout(60)
透過 mark 在特別容易超時的 case 上面設定超時時間。增加整體測試的速度。