zoukankan      html  css  js  c++  java
  • Python unittest模块心得(二)

    基础概念介绍请参看: http://www.cnblogs.com/frost-hit/p/8295818.html

    组织测试用例 unittest.TestSuite(tests=())

    除了使用unittest.main()运行用例,还可以使用TestSuite添加用例并运行,TestSuite类代表了test cases和test suites的集合,例子如下:

    import unittest
    
    class A(unittest.TestCase):
        def test_a(self):
            print ('test_a')
    
    class B(unittest.TestCase):
        def test_b(self):
            print ('test_b')
    
        def test_c(self):
            print ('test_c')
    
    if __name__ == '__main__':
        
        #第一种添加case到suite的方法
        suite1 = unittest.TestSuite(tests=[B('test_c'), A('test_a')])
        suite = unittest.TestSuite(tests=(suite1, B('test_b')))
        
        #第二种添加case到suite的方法
        suite1=unittest.TestSuite()
        suite1.addTest(B('test_b'))
        suite1.addTest(A('test_a'))
        suite1.addTest(B('test_c'))
        unittest.TextTestRunner().run(suite1)
    ###与TestCase.run()不同,TestSuite.run()传入结果对象,就是TextTestRunner()

    运行结果:

    test_a
    test_b
    test_c
    #无论向suite添加case的顺序如何,都会按照字母排序再运行

    加载和运行测试用例 unittest.TestLoader

    loadTestsFromTestCase(testCaseClass)
    #从TestCase加载用例
    loadTestsFromModule(module, pattern=None)
    #从模块加载用例,

    都是一些类似的加载用例的方法。

    生成HTML格式的测试报告:

    unittest默认的TextTestRunner()是将报告输出到stdout,如果想要生成HTML格式的报告只需要将TextTestRunner()替换成HTMLTestRunner().

  • 相关阅读:
    【剑指Offer】21、栈的压入、弹出序列
    【剑指Offer】20、包含min函数的栈
    【剑指Offer】19、顺时针打印矩阵
    【Shell编程】Shell基本语法
    【Shell编程】Shell程序设计
    linux 大中括号变量解读
    Python 二进制,十进制,十六进制转换
    Python3.x和Python2.x的区别
    python通过SSH登陆linux并操作
    PEP8特性
  • 原文地址:https://www.cnblogs.com/frost-hit/p/8340412.html
Copyright © 2011-2022 走看看