按顺序执行
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方法,把测试用例添加到测试套件中,最后执行测试套件,从而执行测试套件中的测试用例。
按测试类执行
suite = unittest.TestSuite(unittest.makeSuite(BaiduTest)) unittest.TextTestRunner(verbosity=2).run(suite) |
makeSuite可以实现把测试用例类中所有的测试用例组成测试套件TestSuite。
加载测试类
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)) |
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。