[Python] 在 pytest 裡用 skipif() 作有條件的測試

[Python] 在 pytest 裡用 skipif() 作有條件的測試

今天在用 pytest 寫 unit-testing 的時候,遇到一個問題,

就是用的某個 library 只在 python 2.7 以上才能正確執行,

但我們的產品支援的平台上有 python 2.6 也有 2.7,

所以這個 unit-testing case 在一些平台上會成功,在另外一些平台上會失敗…

 

要解決這個問題,一個是找個各平台都通用的 library 來取代,

不過這點以那個 case 來說比較困難…

另一個方法,就是只在支援的平台上跑那個 test case~

pytest 支援條件式的測試,像我們可以用 pytest.mark.skipif() 來測試 python 版本,

如果版本 >= 2.7 以上,才跑這個 test case,寫法如下:

@pytest.mark.skipif(sys.version_info < (2, 7), reason="requires python2.7")
def test_fuzzy_testing():
import special_module
assert special_module.verify() == True

  

參考資料:Marking a test function to be skipped

 

(本頁面已被瀏覽過 238 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料