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