zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    zz--Add-Migration与EF及Mysql的使用。。
    最后学期
    E. Tree Queries 题解(思维+dfs序)
    D. 0-1 MST 题解(补图的联通块)
    F. Equalizing Two Strings 题解(思维)
    CSUST 白银御行想展示 题解(思维)
    E2. Rubik's Cube Coloring (hard version) 题解(dp+思维)
    D. Hemose in ICPC ? 题解(二分+dfs序+交互)
    C. Bakry and Partitioning 题解(思维+两次dfs)
    E. Bored Bakry 题解(二进制+思维)
  • 原文地址:https://www.cnblogs.com/zerotest/p/13554510.html
Copyright © 2011-2022 走看看