构建测试套件

按顺序执行

  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  心脏鼓点  阅读(135)  评论(0编辑  收藏  举报