unittest框架系列四(子測試subTest)

子測試subTest

歡迎加入測試交流群:夜行者自動化測試(816489363)進行交流學習QAQ

–成都-阿木木

如果測試方法內(nèi),還需要對某些差異非常小的參數(shù)進行測試,unittest支持使用subTest()上下文管理器在測試方法的內(nèi)部區(qū)分他們,也就是說,我們可以在測試方法的內(nèi)部進行調(diào)用的測試方法的測試,也就是測試方法嵌套,可以傳遞一個參數(shù)集(數(shù)據(jù)驅(qū)動)對于子測試方法進行測試,子測試方法會針對參數(shù)集(數(shù)據(jù)驅(qū)動)中的每一個參數(shù)值,進行測試結(jié)果的輸出。

classNumbersTest(unittest.TestCase):deftest_even(self):"""

? ? ? ? Test that numbers between 0 and 5 are all even.

? ? ? ? """foriinrange(0,6):withself.subTest(i=i):self.assertEqual(i%2,0)

結(jié)果為:======================================================================FAIL:test_even(__main__.NumbersTest)(i=1)Test that numbers between0and5arealleven.----------------------------------------------------------------------Traceback(most recent call last):File"D:/TestScriptDir/python_web/mysite/unittest_demo.py",line25,intest_even? ? self.assertEqual(i%2,0)AssertionError:1!=0======================================================================FAIL:test_even(__main__.NumbersTest)(i=3)Test that numbers between0and5arealleven.----------------------------------------------------------------------Traceback(most recent call last):File"D:/TestScriptDir/python_web/mysite/unittest_demo.py",line25,intest_even? ? self.assertEqual(i%2,0)AssertionError:1!=0======================================================================FAIL:test_even(__main__.NumbersTest)(i=5)Test that numbers between0and5arealleven.----------------------------------------------------------------------Traceback(most recent call last):File"D:/TestScriptDir/python_web/mysite/unittest_demo.py",line25,intest_even? ? self.assertEqual(i%2,0)AssertionError:1!=0----------------------------------------------------------------------Ran1testin0.001sFAILED(failures=3)

如果不使用子測試,則在第一次失敗后執(zhí)行將停止,并且錯誤將不那么容易診斷,因為i?不會顯示的值:

FAIL:test_even(__main__.NumbersTest)----------------------------------------------------------------------Traceback(most recent call last):File"subtests.py",line32,intest_even? ? self.assertEqual(i%2,0)AssertionError:1!=0

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容