Skip装饰器 @unittest.skip进行调用
总计有四种不同的skip装饰器
[email protected]:无条件跳过该用例执行
[email protected]:当if条件为真时,跳过
[email protected]:与skipif相反,当条件为假的时候,跳过
[email protected]:当用例报错的时候,系统会忽略该错误
@unittest.skipIf(1 == 1)
def test_1:
print("当1等于1为真的时候,跳过该函数")
@unittest.skipUnless(1 == 2)
def test_2:
print("当1等于2位假的时候,跳过该函数")
@unittest.skip
def test_3:
print("无条件跳过该函数")
套件
UnitTest中一大特色:测试套件与测试运行器
默认在框架中所有的用例都会全部执行,且是依照UnitTest的规则来进行排序执行的
应用一定是结合UnitTest测试框架来执行的
套件的运行时一定需要通过运行器来进行运行操作,默认的运行器TestTestRunne
运行套件时,用例的顺序是基于套件在添加用例时的顺序来定的
import unittest
#添加用例到套件执行
#创建套件
suite = unittest.TestSuite()
#添加用例到套件中:添加单个测试用例,通过用例的名称进行添加
suite.addTest(类名('函数名'))
#添加用例到套件中:批量添加,一次性添加多个测试用例,通过用例集合来进行添加
cases = [类名1('函数名1'),类名2('函数名2'),类名3('函数名3')]
suite.addTests(cases)
#批量添加测试用例:直接添加一整个UnitTest类
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(类名))
laodTests from TestCase
读取所有的类 从 TestCase中
#批量添加测试用例,通过类名来进行添加
suite.addTests(unittest.TestLoader().loadTestsFromName('文件名.类名')
类名所在的包名
#批量添加:通过文件名来进行添加
#定义获取用例的路径
case_dir = ‘./’
#基于路径来获取用例,组合成套件
discover = unittest.defaultTestLoader.discover(start_dir = case_dir,pattern='unit*.py')
在start_dir路径下 寻址以unit开头.py结尾的文件
#运行套件
runer = unittest.TestTestRunner()
runer.run(suite)
测试运行器:支持外部的第三方运行器,比如HTMLTestRunnerCN
from HTMLTestRunnerCN import HTMLTestRunner
#保存路径
report_path = './'
#报告的文件名
report_file = report_path + 'report3.html'
#判断保存路径是否存在
if not os.poth.exists(report_path):
os.mkdir(report_path)
with open(report_file,'wb') as file:
runer = HTMLTestRunner(stream=file,titile='这是第一份测试报告',decsription='这是测试报告的描述',tester='xxx'
runner.run(discover)
应用套件与运行器实现UnitTest测试流程的执行,
基于原有的关键字驱动+UnitTest+HTMLTestRunner+日志+邮件来实现一整套完整的自动化添加购物车流程