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().

原文地址:https://www.cnblogs.com/frost-hit/p/8340412.html