• unittest单元测试框架教程7-unittest.TestSuite类详解


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

    unittest.TestSuite(tests =())参数tests必须是单个测试用例或其他最初用于构建套件的测试套件的可迭代项。稍后提供了其他方法来将测试用例和套件添加到集合中。

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

    addTest(test)

    addTests(iter(test))

    TestCase添加TestSuite到套件。

    例:

    import unittest

    def jiafa(a,b):
    if type(a) is str or type(b) is str:
    return str(a) + str(b)
    return a+b

    def jianfa(a,b):
    if type(a) is str or type(b) is str:
    return 0
    return a-b

    def chengfa(a,b):
    if type(a) is str or type(b) is str:
    return 0
    return a*b


    class TestMath(unittest.TestCase):
    def setUp(self):
    pass

    def tearDown(self):
    pass

    def test_jiafa(self):
    '''测试加法程序'''
    print("开始测试test_jiafa")
    self.assertEqual(jiafa(1,1),2)

    def test_jianfa(self):
    '''测试减法程序'''
    print("开始测试test_jianfa")
    self.assertEqual(jianfa(1,1),0)

    def test_chengfa(self):
    '''测试乘法程序'''
    print("开始测试test_chengfa")
    self.assertEqual(chengfa(1,1),1)


    if __name__ == '__main__':
    unittest.main()
    from testmath import *

    suite = unittest.TestSuite()
    suite.addTest(TestMath('test_jiafa'))
    print(suite)

    输出一个测试用例的测试套件

    <unittest.suite.TestSuite tests=[<testmath.TestMath testMethod=test_jiafa>]>

    run(result)

    运行与此套件相关的测试,将结果收集到作为result传递的测试结果对象中。请注意,不同于 TestCase.run()TestSuite.run()需要传递结果对象。

    result = unittest.TestResult()
    unittest.registerResult(result)
    suite = unittest.TestSuite()
    suite.addTest(TestMath('test_jiafa'))
    suite.addTest(TestMath('test_jianfa'))
    testresult = suite.run(result)
    print(testresult)

    开始测试test_jiafa
    开始测试test_jianfa
    <unittest.result.TestResult run=2 errors=0 failures=0>

    debug()

    运行与此套件相关的测试,而不收集结果。这允许将测试引发的异常传播到调用方,并可用于支持在调试器下运行测试。模式与unittest.TestCase类详解的debug相同不重复介绍。

    countTestCases()

    返回此测试对象表示的测试数量,包括所有单个测试和套件。

    print(TestMath('test_chengfa').countTestCases())
    loader = unittest.TestLoader()
    suite = loader.loadTestsFromTestCase(TestMath)
    print(suite.countTestCases())
    suite.addTest(TestMath('test_chengfa'))
    print(suite.countTestCases())

    分别是1,3,4

  • 相关阅读:
    DAY 223 GIT
    swooleHTTP
    swooleWebSocket
    swooleUDP
    swoole异步MySql
    swooleTCP
    谈谈继承的局限性
    也谈过程决定质量
    谁该为参数负责
    使用function改进设计
  • 原文地址:https://www.cnblogs.com/zerotest/p/13554510.html
Copyright © 2020-2023  润新知