构建测试套件

按顺序执行

  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))
今天太阳也东升,而后西沉,早晨盛开的花儿也将凋谢;今天的太阳也西沉,而后东升,阳光照射之处遍地花开,但却已非昨日之花。
原文地址:https://www.cnblogs.com/TD1900/p/13709114.html