美文网首页
unittest框架系列四(子测试subTest)

unittest框架系列四(子测试subTest)

作者: 成都_阿木木 | 来源:发表于2020-10-09 10:32 被阅读0次

    子测试subTest

    欢迎加入测试交流群:夜行者自动化测试(816489363)进行交流学习QAQ

    –成都-阿木木

    如果测试方法内,还需要对某些差异非常小的参数进行测试,unittest支持使用subTest()上下文管理器在测试方法的内部区分他们,也就是说,我们可以在测试方法的内部进行调用的测试方法的测试,也就是测试方法嵌套,可以传递一个参数集(数据驱动)对于子测试方法进行测试,子测试方法会针对参数集(数据驱动)中的每一个参数值,进行测试结果的输出。

    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)

    结果为:======================================================================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)

    如果不使用子测试,则在第一次失败后执行将停止,并且错误将不那么容易诊断,因为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

    相关文章

      网友评论

          本文标题:unittest框架系列四(子测试subTest)

          本文链接:https://www.haomeiwen.com/subject/yfflpktx.html