unittest框架系列六(unittest的TestSuite常用api说明)

TestSuite(测试套件)

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

–成都-阿木木


class unittest.TestSuite(tests=())

此类表示各个测试用例和测试套件的集合。该类提供测试运行程序所需的接口,以使其能够像其他任何测试用例一样运行。运行TestSuite实例与遍历套件(分别运行每个测试)的结果相同。

TestSuite对象的行为与TestCase对象非常相似,不同之处在于它们实际上并未实施测试。相反,它们用于将测试聚合到应一起运行的测试组中。可以使用一些其他方法将测试添加到TestSuite实例:

#!/user/bin/env python
# -*- coding: utf-8 -*-

"""
------------------------------------
@Project : mysite
@Time    : 2020/8/31 9:29
@Auth    : chineseluo
@Email   : 848257135@qq.com
@File    : run.py
@IDE     : PyCharm
------------------------------------
"""
import unittest
from unittest_demo import TestStringMethods


def suite():
    suite = unittest.TestSuite()
    suite.addTest(TestStringMethods('test_upper'))
    suite.addTest(TestStringMethods('test_isupper'))
    return suite


if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(suite())
  • addTests(test):将来自所有可迭代的TestCaseTestSuite 实例的测试添加到该测试套件中。这等效于遍历测试,调用addTest()每个元素。
#!/user/bin/env python
# -*- coding: utf-8 -*-

"""
------------------------------------
@Project : mysite
@Time    : 2020/8/31 9:29
@Auth    : chineseluo
@Email   : 848257135@qq.com
@File    : run.py
@IDE     : PyCharm
------------------------------------
"""
import unittest
from unittest_demo import TestStringMethods


def suite():
    suite = unittest.TestSuite()
    suite.addTests([TestStringMethods('test_upper'), TestStringMethods('test_isupper')])
    return suite


if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(suite())

TestSuite和TestCase类都拥有下面的方法:

  • run(restult):运行与此套件相关的测试,从结果对象中收集结果。请注意,不同于 TestCase.run()TestSuite.run()需要传递结果对象。
#!/user/bin/env python
# -*- coding: utf-8 -*-

"""
------------------------------------
@Project : mysite
@Time    : 2020/8/31 9:29
@Auth    : chineseluo
@Email   : 848257135@qq.com
@File    : run.py
@IDE     : PyCharm
------------------------------------
"""
import unittest
from unittest_demo import TestStringMethods


def suite():
    resObj = unittest.TestResult()
    suite = unittest.TestSuite()
    suite.addTests([TestStringMethods('test_upper'), TestStringMethods('test_isupper')])
    result = suite.run(resObj)
    return result


if __name__ == '__main__':
    print(suite())
  • debug():运行与此套件相关的测试,而不收集结果。这允许将测试引发的异常传播到调用方,并可用于支持在调试器下运行测试。
#!/user/bin/env python
# -*- coding: utf-8 -*-

"""
------------------------------------
@Project : mysite
@Time    : 2020/8/31 9:29
@Auth    : chineseluo
@Email   : 848257135@qq.com
@File    : run.py
@IDE     : PyCharm
------------------------------------
"""
import unittest
from unittest_demo import TestStringMethods


def suite():
    suite = unittest.TestSuite()
    suite.addTests([TestStringMethods('test_upper'), TestStringMethods('test_isupper')])
    suite.debug()


if __name__ == '__main__':
    suite()

  • countTestCases():返回此测试对象表示的测试数量,包括所有单个测试和子套件。
#!/user/bin/env python
# -*- coding: utf-8 -*-

"""
------------------------------------
@Project : mysite
@Time    : 2020/8/31 9:29
@Auth    : chineseluo
@Email   : 848257135@qq.com
@File    : run.py
@IDE     : PyCharm
------------------------------------
"""
import unittest
from unittest_demo import TestStringMethods


def suite():
    suite = unittest.TestSuite()
    suite.addTests([TestStringMethods('test_upper'), TestStringMethods('test_isupper')])
    print(suite.countTestCases())


if __name__ == '__main__':
    suite()

 

posted @ 2020-09-22 10:22  成都-阿木木  阅读(278)  评论(0编辑  收藏  举报