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)
查看6道真题和解析