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)