玖叶教程网

前端编程开发入门

我学习自动化的小笔记-unittest的套件和运行器

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+日志+邮件来实现一整套完整的自动化添加购物车流程

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言