unittest测试框架
import unittest,HTMLTestRunner,xmlrunner class TestClas(unittest.TestCase): @classmethod def setUpClass(cls): print("setup_class") @classmethod def tearDownClass(cls): print("tear_down") def setUp(self): print("每个测试用例开始前执行setup") def tearDown(self): print("每个测试用例结束,执行teardown") def test_a_case(self): '''测试用例a''' #三引号注释会显示在测试报告中 self.assertEqual(1,1) def test_b_case(self): '''测试用例b''' self.assertEqual(1,1) def test_c_case(self): '''测试用例c''' self.assertEqual(1,1) class TestClas2(unittest.TestCase): def test_a_case(self): '''TestClas2测试用例a''' self.assertEqual(1, 1) def test_b_case(self): '''TestClas2测试用例b''' self.assertEqual(1, 2) def test_c_case(self): '''TestClas2测试用例c''' self.assertEqual(1, 2) if __name__ == '__main__': # unittest.main() #运行所有的用例 suite = unittest.TestSuite() #创建测试套件 # suite.addTest(TestClas('test_a_case')) #添加类中某一个方法到测试套件中 # suite.addTest(TestClas2('test_b_case')) #添加其他类中某一个方法到测试套件中 suite.addTest(unittest.makeSuite(TestClas)) #把整个类作为suite传进套件 suite.addTest(unittest.makeSuite(TestClas2)) #把整个类作为suite传进套件 # ---------生成html报告---------------- # html_rep = open(r'/Users/dalei/Desktop/boulder/Boulder/Autotest/reports/report.html','wb') # runner = HTMLTestRunner.HTMLTestRunner(stream=html_rep,title='报告标题',description='测试内容') # runner.run(suite) # ---------生成xml报告,为jenkins持续集成使用---------------- xml_runner = xmlrunner.XMLTestRunner(output='/Users/dalei/Desktop/boulder/Boulder/Autotest/reports/') xml_runner.run(suite)
---------------setup---------teardowm---------------------
class MyTest(unittest.TestCase): @classmethod def setUpClass(cls): # 测试类运行之前运行的 print("类set") @classmethod def tearDownClass(cls): # 测试类运行之后运行的 print("类tear") def setUp(self): # 每个用例运行之前会运行 print("每个用例运行之前会运行") def tearDown(self): #每个用例之后会运行 print("每个用例运行之后会运行") --------------------------添加目录下的case-----------------------
import unittest import HTMLTestRunner suite = unittest.TestSuite() all_case = unittest.defaultTestLoader.discover( r'/Users/dalei/Desktop/boulder/Boulder/AUTO/case/','*.py' ) #找到case目录下所有.py文件 添加测试用例 for case in all_case: print('case...',case) suite.addTests(case) fw = open('report.html','wb') runner = HTMLTestRunner.HTMLTestRunner( stream=fw,title='多个用例文件' ) runner.run(suite) # runner.run(all_case)