Python学习笔记之unittest参数化和跳过

参数化: 

       unittest的参数化需要安装unittest扩展插件parameterized来实现,最新版本PYCharm支持在软件内直接打开终端进行安装,pip install parameterized。

安装完成后要使用,先导包,再修饰

导包:from parameterized import parameterized
使用@parameterized.expand装饰器可以为测试函数的参数进行参数化

import unittest
import yaml
from parameterized import parameterized


def add(num1, num2):
    return num1 + num2


class Test01(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        print("类级别开始执行")

    @classmethod
    def tearDownClass(cls):
        print("类级别结束被执行")
# ************************************************************
    def get_data():
        with open("data.yml", "r", encoding="utf-8") as f:
            data = yaml.safe_load(f)
        print(data)
        print(data["data"])
        return data["data"]
        # return [(1, 2, 3), (4, 6, 10), (1, 10, 11)]
"""
本注释上方和下方内容即为参数化实现的内容,将数据写入yml文件里,通过get_data方法传递到test_add1里,
"""
    @parameterized.expand(get_data())
    def test_add1(self, num1, num2, expendresult):
        result = add(num1, num2)
        print(f"用例计算结果为:{result},预期结果为:{expendresult}")
        assert result == expendresult
# ************************************************************

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


跳过:
跳过很简单,记住关键字就可以!!

***********************************
可以使用在类的上方,表示类中用例都不执行,如果放在用例上方,标识单条用例不执行

# 直接将测试函数标记成跳过
@unittest.skip('代码未完成')
# 根据条件判断测试函数是否跳过,可判断版本
@unittest.skipIf(condition, reason)




全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务