前面测试用例与执行都是写在一个文件,当用例数量不断增加的时候,用例的执行与管理变得非常麻烦,因此需要对用例根据具体的功能模块来使用单独的模块来管理。就像一所学校要根据不同年级进行分班管理,也是同样道理。
案例:Test_Project 文件目录下包含4个python文件:
• l–StartEnd.py—— SetUp与TearDown管理
• l–calculatory.py——加减法运算方法的实现
• l–test_add.py——加法测试用例
• l–test_sub.py——减法测试用例
• l–runtest.py——用例执行管理
----------
calculatory.py
#两个数相加或者相减
class Math:
def __init__(self,a,b):
self.a=int(a)
self.b=int(b)
def add(self):
return self.a+self.b
def sub(self):
return self.a-self.b
----------
StartEnd.py
import unittest
class SetUp_TearDown(unittest.TestCase):
def setUp(self):
print("test start")
def tearDown(self):
print("test end")
----------
test_add.py
from calculator 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
from calculator import *
from StartEnd import *
class TestSub(SetUp_TearDown):
def test_sub(self):
i=Math(5,5)
self.assertEqual(i.sub(),0)
def test_sub1(self):
i=Math(8,5)
self.assertEqual(i.sub(),3)
----------
runtest.py
• 使用discover 可以一次调用多个脚本
• test_dir 被测试脚本的路径
• pattern 脚本名称匹配规则
import unittest
test_dir='./'
discover=unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')
if __name__ == '__main__':
runner=unittest.TextTestRunner()
runner.run(discover)