python学习笔记(十五)-unittest单元测试的一个框架
unittest 单元测试的一个框架
什么框架
一堆工具的集合。
TestCase
TestSuite 测试套件,多个用例在一起
TestLoader是用来加载TestCase到TestSuite中的
TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,
包括运行了多少测试用例,成功了多少,失败了多少等信息
用例必须以test开头
import unittest import HTMLTestRunner from BeautifulReport import BeautifulReport def calc(x,y): return x+y class TestCalc(unittest.TestCase): def test_pass_case(self): '''这个通过的测试用例''' print('这个通过用例') res = calc(1,2) self.assertEqual(3,res) self.assertNotEqual(2,3)#返回的结果不一样 def setUp(self): print('我是setUp。。') #每个用例运行之前都会执行它 def tearDown(self): #每个用用例运行完之后都会执行它 print('我是tearDown') @classmethod def setUpClass(cls): print('我是setupClass') #所有的用例执行之前执行一次 @classmethod def tearDownClass(cls): print('我是tearDownClass') #所用的用例都运行完之后执行一次 def test_a(self): '''这个普通的测试用例''' print('a') def test_fail_case(self): '''这个是失败的测试用例''' print('这个是失败的测试用例') res = calc(9,8) self.assertEqual(98,res) def test_haha(self): '''哈哈哈''' self.assertEqual(1,2) if __name__ =='__main__': unittest.main() #他会帮你运行当前这个python里面所有的测试用例。
# suite = unittest.TestSuite()#定义一个测试套件 # # suite.addTest(TestCalc('test_pass_case')) # # suite.addTest(TestCalc('test_a')) # # suite.addTest(TestCalc('test_fail_case')) #单个添加用例的
# suite.addTests(unittest.makeSuite(TestCalc)) #这个类里面的所有测试用例 # # f = open('report.html','wb')#打开一个测试报告的文件 # # runner = HTMLTestRunner.HTMLTestRunner(stream=f,title='测试结果',description='描述') # # runner.run(suite) #运行 难看的报告
# result = BeautifulReport(suite) # result.report(filename='测试报告', description='描述', log_path='.')