unittest 生成BeautifulReport测试报告,DDT用例描述,读取yaml参数

安装BeautifulReport

pip install BeautifulReport

安装ddt库

pip install ddt

1,修改ddt.py

    def wrapper(cls):
        for name, func in list(cls.__dict__.items()):
            if hasattr(func, DATA_ATTR):
                index_len = getattr(func, INDEX_LEN)
                for i, v in enumerate(getattr(func, DATA_ATTR)):
                    test_name = mk_test_name(
                        name,
                        getattr(v, "__name__", v),
                        i,
                        index_len,
                        fmt_test_name
                    )
                    #test_data_docstring = _get_test_data_docstring(func, v)
                    #用例描述改为用例名称
                    test_data_docstring = v['caseName']
                    if hasattr(func, UNPACK_ATTR):
                        if isinstance(v, tuple) or isinstance(v, list):
                            add_test(
                                cls,
                                test_name,
                                test_data_docstring,
                                func,
                                *v
                            )
                    ...

 2,测试用例

import unittest, ddt
# ddt 传入参数caseNum为参数值,caseName为用例描述
datalist = [{'caseNum': 'case001', 'caseName': '用例一'}, {'caseNum': 'case002', 'caseName': '用例二'}]

@ddt.ddt
class UserTestCase(unittest.TestCase):
    # 所有类中方法的入参为self,定义方法的变量也要self.变量
    def setUp(self):
        print("set up 开始")

    def tearDown(self):
        print("tearDown 执行结束")
        print('\n')

    @ddt.data(*datalist)
    def testCase1(self, data):
        print(data)

if __name__ == '__main__':
    unittest.main()

3,生成测试报告

import unittest
from BeautifulReport import BeautifulReport    #导入BeautifulReport

if __name__ == '__main__':
     suite_tests = unittest.defaultTestLoader.discover(".", pattern="*tests.py", top_level_dir=None)     #"."表示当前目录,"*tests.py"匹配当前目录下所有tests.py结尾的用例
     BeautifulReport(suite_tests).report(filename='测试报告', description='测试', log_path='.')    #log_path='.'把report放到当前目录下

yaml 读取参数

import unittest, ddt
import yaml
# ddt 传入参数caseNum为参数值,caseName为用例描述
#datalist = [{'caseNum': 'case001', 'title': '用例一'}, {'caseNum': 'case002', 'title': '用例二'}]


# 读取yaml文件
def read_yaml():
    with open(r'C:\Users\Administrator\PycharmProjects\pythonProject7\test\test1.yml', 'r', encoding='utf-8') as f:
        file_content = f.read()
    datalist = yaml.load(file_content, yaml.FullLoader)
    return datalist

@ddt.ddt
class UserTestCase(unittest.TestCase):
    # 所有类中方法的入参为self,定义方法的变量也要self.变量
    def setUp(self):
        print("set up 开始")

    def tearDown(self):
        print("tearDown 执行结束")
        print('\n')

    @ddt.data(*read_yaml())
    def testCase3(self, data):
        print(data)

if __name__ == '__main__':
    unittest.main()
import unittest
from BeautifulReport import BeautifulReport    #导入BeautifulReport

if __name__ == '__main__':
     suite_tests = unittest.defaultTestLoader.discover(".", pattern="*tests.py", top_level_dir=None)     #"."表示当前目录,"*tests.py"匹配当前目录下所有tests.py结尾的用例
     BeautifulReport(suite_tests).report(filename='测试报告', description='测试', log_path='.')    #log_path='.'把report放到当前目录下


-
  title: 用例一
  caseNum: 123
-
  title: 用例二
  caseNum: 233

 读取yaml

import yaml

with open(r'C:\Users\Administrator\PycharmProjects\pythonProject7\test\test1.yml', 'r', encoding='utf-8') as f:
    file_content = f.read()
content = yaml.load(file_content, yaml.FullLoader)
print(type(content))

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值