构建测试套件

按顺序执行

suite = unittest.TestSuite()
suite.addTest(BaiduTest('test_baidu_news'))
suite.addTest(BaiduTest('test_baidu_map'))
unittest.TextTestRunner(verbosity=2).run(suite)

注解:在以上代码中,首先需要对TestSuite类进行实例化,使之成为一个对象suite,然后调用TestSuite类中addTest方法,把测试用例添加到测试套件中,最后执行测试套件,从而执行测试套件中的测试用例。

按测试类执行

makeSuite可以实现把测试用例类中所有的测试用例组成测试套件TestSuite。

suite = unittest.TestSuite(unittest.makeSuite(BaiduTest))
unittest.TextTestRunner(verbosity=2).run(suite)

加载测试类

suite = unittest.TestLoader().loadTestsFromTestCase(BaiduTest)
unittest.TextTestRunner(verbosity=2).run(suite)

按测试模块执行

在TestLoader类中也可以按模块来执行测试。在Python中,一个Python文件就是一个模块,一个模块中可以有N个测试类,在一个测试类中可以有N个测试用例。

suite = unittest.TestLoader().loadTestsFromModule('unittest1.py')
unittest.TextTestRunner(verbosity=2).run(suite)

优化测试套件

以上实例是把测试套件写在了main主函数中,也可以单独把测试套件写成一个方法来调用。这里以加载测试类为例,把测试套件写成一个单独的方法。

@staticmethod
def suite(testCaseClass):
suite = unittest.TestLoader().loadTestsFromTestCase(testCaseClass)
return suite

if name == 'main':
unittest.TextTestRunner(verbosity=2).run(BaiduTest.suite(BaiduTest))

posted @ 2020-09-21 22:17  心脏鼓点  阅读(153)  评论(0)    收藏  举报