iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0

在昨天我們有介紹兩種重複執行測試的方式,其中 repeat-scope 是透過在終端設定執行參數的方式來達到重複執行的目的。設定執行參數能夠提高測試的自由度與客製化,但是隨著設定的參數越來越多,總不能每次執行的時候都要打上一大串指令,這個時候我們可以使用 pytest.ini 的 addopts 。

pytest ini

pytest.ini 用來設定 pytest 的配置,除了上文提到的 addopts 以外,還可以配置許多設定。在終端輸入 pytest -h 可以查看所有可使用的參數與 ini 檔的配置選項。

設定

在專案創建檔案 pytest.ini,在檔案內輸入

[pytest]

即可。以下介紹幾個常用的參數

addopts

用於輸入參數,可以把常用的參數輸入到 appopts 中,執行測試時會一併執行。

[pytest]

addopts = -s --count=3 --repeat-scope=session

這樣在昨天的測試,只要在 pytest 輸入 pytest 就可以重複測試。
以下介紹幾個常用的參數

  • -v: 顯示測試的詳細資訊
  • -x: 若測試在中途 fail,則立即停止測試(例如有 10 個測試,在第五條測試 fail 了,就不會執行第六條以後的測試。)
  • --maxfail=NUM: 設定一條 case fail 幾次才會停止測試。
  • -k casename: 根據 case 的名稱選擇要執行的測試。
  • -m: 以 mark 的名稱選擇要執行的測試。
  • --disable-warnings: 隱藏警告訊息

testpaths

設定 pytest 尋找測試檔案的預設路徑

[pytest]

testpaths = web_test

markers

在 pytest.ini 中設定有在 test 使用的 markers,不過直接在測試使用 markers 而不在 pytest.ini 中設定也可以正常使用,只是可能會產生警告。

[pytest]

markers =
    active
    unactived

console_output_style

設定輸出樣式,有三種模式可供選擇

  • classic: 預設
  • progress: 帶有進度百分比([20%])
  • count: 帶有完成測試數/未完成測試數([1/5])

下次預計會講到 pytest 的核心功能 - fixture


上一篇
D15 pytest 介紹
下一篇
D17 pytest fixture
系列文
利用Python完成自動化測試專案30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言