一、需求:计算2个数相加之和
代码结构如图
1.用例数据
addata.csv
1,2,3 5,5,10 10,100,110
2.读取csv文件utils
readcsv.py
import csv class ReadCsv: def read_csv(self): """ 读取CSV文件内容 :return: """ my_list = [] with open("..//data//addata.csv", "r", encoding="utf-8") as f: csv_content = csv.reader(f) for csv_con in csv_content: my_list.append(csv_con) return my_list
3.测试函数功能
caladd.py
class CalcAdd: """ 计算两数之和 """ def add(self, a, b): return a + b
4.执行测试用例代码
calctest.py
import unittest from testfunc.caladd import CalcAdd from utils.readcsv import ReadCsv rea = ReadCsv() class CalcTest(unittest.TestCase): def setUp(self): print("开始") def tearDown(self): print("结束") def test001(self): m_list = rea.read_csv() for m_li in m_list: ca = CalcAdd() act = ca.add(int(m_li[0]), int(m_li[1])) self.assertEqual(act, int(m_li[2])) # print(m_li[0],m_li[1],m_li[2]) if __name__ == '__main__': unittest.main()
生成测试用例报告
用例模板
HTMLTestRunner.py
import unittest from testcase.calctest import CalcTest from utils.HTMLTestRunner import HTMLTestRunner class SuiteTest(unittest.TestCase): def test_suite(self): case_list = ['test001'] mysuit = unittest.TestSuite() for case in case_list: mysuit.addTest(CalcTest(case)) with open('../report.html', 'wb') as f: HTMLTestRunner( stream=f, title='求两个数之和测试', description='函数功能验证', verbosity=2 # 为每个测试用例生成测试报告 ).run(mysuit) if __name__ == '__main__': unittest.main
测试套件
caltestsuite.py
import unittest from testcase.calctest import CalcTest from utils.HTMLTestRunner import HTMLTestRunner class SuiteTest(unittest.TestCase): def test_suite(self): case_list = ['test001'] mysuit = unittest.TestSuite() for case in case_list: mysuit.addTest(CalcTest(case)) with open('../report.html', 'wb') as f: HTMLTestRunner( stream=f, title='求两个数之和测试', description='函数功能验证', verbosity=2 # 为每个测试用例生成测试报告 ).run(mysuit) if __name__ == '__main__': unittest.main