python单元测试框架-unittest(四)之用例综合框架管理
简述为何如要框架?
前面测试用例与执行都是写在一个文件,当用例数量不断增加的时候,用例的执行与管理变得非常麻烦,因此需要对用例根据具体的功能模块来使用单独的模块来管理。就像一所学校要根据不同年级进行分班管理,也是同样道理。
实例:Project文件目录下包含4个python文件
StartEnd.py
1 #coding=utf-8 2 import unittest 3 class SetUp_TearDown(unittest.TestCase): 4 def setUp(self): 5 print("test start") 6 def tearDown(self): 7 print("test end")
calculatory.py
1 #coding=utf-8 2 class Math(object): 3 def __init__(self,a,b): 4 self.a=int(a) 5 self.b=int(b) 6 def add(self): 7 return self.a+self.b 8 def sub(self): 9 return self.a-self.b
test_add.py
#coding=utf-8 from calculatory import * from StartEnd import * class TestAdd(SetUp_TearDown): def test_add(self): i=Math(5,5) self.assertEqual(i.add(),10) def test_add1(self): i=Math(8,8) self.assertEqual(i.add(),16)
test_sub.py
1 #coding=utf-8 2 from calculatory import * 3 from StartEnd import * 4 class TestSub(SetUp_TearDown): 5 def test_sub(self): 6 i=Math(5,5) 7 self.assertEqual(i.sub(),0) 8 9 def test_sub1(self): 10 i=Math(8,5) 11 self.assertEqual(i.sub(),3)
runtest.py
1 #coding=utf-8 2 import unittest 3 ''' 4 • 使用discover 可以一次调用多个脚本 5 • test_dir 被测试脚本的路径 6 • pattern 脚本名称匹配规则 7 8 ''' 9 test_dir='./' 10 discover=unittest.defaultTestLoader.discover(test_dir,pattern='test*.py') 11 12 if __name__=='__main__': 13 runner=unittest.TextTestRunner() 14 runner.run(discover)