Frame--ddt
发布日期:2021-05-14 12:23:08 浏览次数:17 分类:精选文章

本文共 2376 字,大约阅读时间需要 7 分钟。

文章目录

1. ddt框架介绍

数据驱动的单元测试是为数据源中的每一行重复运行的一种单元测试。

2. ddt使用

import unittestfrom ddt import ddt, data, unpacktest_data = [{'a': 1, 'b': 2},             {'a': 3, 'b': 4},             {'a': 5, 'b': 6},             {'a': 7, 'b': 8},             {'a': 9, 'b': 10},]@ddt  # ddt:装饰测试类class Testmul(unittest.TestCase):    @data(*test_data)                 # 装饰测试数据    def test_mul(self, item):        x = item['a']        y = item['b']        print('两个数的乘积是{}'.format(x*y))if __name__ == '__main__':    unittest.main()>两个数的乘积是2 两个数的乘积是12 两个数的乘积是30 两个数的乘积是56 两个数的乘积是90
import unittestfrom ddt import ddt, data, unpacktest_data = [[1, 2],             [3, 4],             [5, 6],             [7, 8]]@ddt  # ddt:装饰测试类class Testmul(unittest.TestCase):    @data(*test_data)                 # 装饰测试用例    @unpack    def test_mul(self, a, b):        print('两个数的乘积是{0}'.format(a * b))if __name__ == '__main__':    unittest.main()>两个数的乘积是2 两个数的乘积是12 两个数的乘积是30 两个数的乘积是56

3. 出现的问题

1. 报告出现:dict() -> new empty dictionary解决办法:(https://www.cnblogs.com/yhleng/p/9805125.html)

4. 代码

# test_case.pyimport unittestfrom ddt import ddt,data,unpackfrom zy.code import Subfrom zy.do_excel import DoExcelfrom zy.conf import ReadConfigbutton = ReadConfig().read_config('case.conf', 'SECTION', 'button')case_no = eval(ReadConfig().read_config('case.conf', 'SECTION', 'case_id'))  # 配置文件读取的数据默认为字符串test_data = DoExcel().read_data(button, case_no)@ddt  # ddt:装饰测试类class TestSub(unittest.TestCase):    def setUp(self):        self.t = Sub()        self.wb = DoExcel()    @data(*test_data)    def test_sub(self, item):        print('用例标题:{}'.format(item['title']))        res = self.t.sub(item['param_a'], item['param_b'])        try:            self.assertEqual(res, item['ExpectedResult'])            test_result = 'PASS'        except AssertionError as e:            test_result = 'FAIL'            raise e        finally:            self.wb.write_back(item['case_id']+1, res, test_result)    def tearDown(self):        print('测试完成了')
# excute_case.pyimport unittestfrom zy import test_caseimport HTMLTestRunnerNewsuite = unittest.TestSuite()loader = unittest.TestLoader()suite.addTest(loader.loadTestsFromModule(test_case))  # 加载模块的所有用例with open('TestResult.html', 'wb+') as file:    runner = HTMLTestRunnerNew.HTMLTestRunner(file, title='减法测试', description='第二轮整体回归测试减法方法的正确性', tester='华杰-zy')    runner.run(suite)
上一篇:Frame--pytest框架
下一篇:Frame--配置文件

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月12日 18时09分26秒