您好,登錄后才能下訂單哦!
這篇文章主要介紹怎么使用python做單元測試,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
python內置了一個unittest,但是寫起來稍微繁瑣,比如都要寫一個TestCase類,還得用 assertEqual, assertNotEqual等斷言方法。 而使用pytest運行測試統一用assert語句就行,兼容unittest,目前很多知名開源項目如PyPy,Sentry也都在用。關于pytest的使用可以參考其官方文檔,雖然有很多高級特性,但是掌握其中一小部分基本就夠用了。
下面是py.test的基本用法,以常見的兩種測試類型(驗證返回值和拋出異常)為例:
def add(a, b): """return a + b Args: a (int): int b (int): int Returns: a + b Raises: AssertionError: if a or b is not integer """ assert all([isinstance(a, int), isinstance(b, int)]) return a + b def test_add(): assert add(1, 2) == 3 assert isinstance(add(1, 2) , int) with pytest.raises(Exception): # test exception add('1', 2)
基本使用就是這么簡單。真實場景下遠遠比這個復雜,甚至有時候構造測試的時間比寫業務邏輯的時間還要長。但是再復雜的邏輯也是一點點功能堆積,如果可以確保每一部分都正確,整體上是不會出錯的。單元測試同時也提醒我們,函數完成的功能盡可能單一,這樣才利于測試。
下面幾個是我常用的pytest命令:
py.test test_mod.py # run tests in module py.test somepath # run all tests below somepath py.test -q test_file_name.py # quite輸出 py.test -s test_file_name.py # -s參數可以打印測試代碼中的輸出,默認不打印,print沒結果 py.test test_mod.py::test_func # only run tests that match the "node ID", py.test test_mod.py::TestClass::test_method # run a single method in
以上是怎么使用python做單元測試的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。