[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
(本頁面已被瀏覽過 251 次)