您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页unittest框架及原理

unittest框架及原理

来源:测品娱乐
unittest框架及原理

⼀、unittest框架及原理介绍

1、unittest最核⼼的四个概念

2、Unittest中TestCase类的⽤法

测试⽤例类:⾃⼰定义的类只要继承于unittest中的TestCase那么这个类就是⼀个测试⽤例类测试⽤例:测试⽤例类中,以test开头的⽅法就是⼀条测试⽤例⽤例执⾏通没通过的评判标准:断⾔异常import unittest

from Login import login_check

class LoginTestCases(unittest.TestCase): def test_login_pass(self):

#第⼀步:准备测试⽤例数据

#1、⽤例的参数:可⽤元组,列表和字典 data=(\"python24\ #2、预期结果

expected={\"code\":0,\"msg\":\"登录成功\ #第⼆步:执⾏功能函数,获取实际结果 result=login_check(*data)

#第三步:⽐对实际结果和预期结果 # assert expected==result

self.assertEqual(result,expected)

# 如果直接运⾏这个⽂件,就使⽤unittest中的main函数来执⾏测试⽤例if __name__ == '__main__': unittest.main()

3、Unittest中TestSuit类的⽤法

import unittest

#第⼀步:创建⼀个测试套件suit=unittest.TestSuite()

#第⼆步:将测试⽤例加载到测试套件中

#第1种,通过模块加载⽤例,把模块名作为参数,将该模块中所有测试⽤例全部加载到套件中#创建⼀个加载对象import Testcases

load=unittest.TestLoader()

suit.addTest(load.loadTestsFromModule(Testcases))

#第2种:通过测试⽤例类去加载,把模块中的测试类作为参数,将该测试⽤例类中所有测试⽤例加载到套件中import Testcases

load=unittest.TestLoader()

suit.addTest(load.loadTestsFromTestCase(Testcases.LoginTestCases))

#第3种,添加单条测试⽤例,先导⼊测试⽤例类,再创建⼀个测试类对象,把测试⽤例⽅法名作为参数(unittest.TestCase有参数为字符串类型)

from Testcases import LoginTestCases# 创建⼀个⽤例对象

# 注意点:通过⽤例类去创建测试⽤例对象的时候,需要传⼊⽤例的⽅法名(字符串类型)case=LoginTestCases(\"test_login_pass\")suit.addTest(case)

# 第4种,指定测试⽤例的所在的⽬录路径,把路径作为参数,将该路径下的所有⽤例加载到套件中loader = unittest.TestLoader()

suite.addTest(loader.discover(r\"⽤例⽂件所在的⽬录的绝对路径\"))#第三步:创建⼀个测试运⾏程序启动器#第1种:使⽤unittest⾃带的启动器runner=unittest.TextTestRunner()

#第四步:使⽤启动器去执⾏套件,把套件作为参数runner.run(suite)

4、使⽤TestRunerNew模块⽣成html测试报告

from HTMLTestRunnerNew import HTMLTestRunner#第三步:创建⼀个测试运⾏程序启动器

#第2种:使⽤HTMLTestRunner传⼊参数⽣产启动器

#参数1:打开测试报告⽂件,必须是html后缀的⽂件,模式\"wb\",以⼆进制模式覆盖写⼊,将句柄传给stream#参数2:verbosity=2为默认参数,可以不⽤填写#参数3:tester,报告中显⽰的测试⼈员#参数4:description,报告的描述信息#参数5:title,报告的标题

runner=HTMLTestRunner(stream=open(\"report.html\描述信息\登录功能测试报告\")

5、Unittest中fixture的使⽤

是写在测试⽤例类⾥⾯的,⽤于测试环境搭建或销毁

# 每条⽤例执⾏之前都会执⾏,⽤例的前置条件,以print输出的在测试报告中会显⽰出来def setUp(self):

print(\"⽤例{}开始执⾏--\".format(self))

# 每条⽤例执⾏之后都会执⾏,⽤例的后置处理,以print输出的在测试报告中会显⽰出来def tearDown(self):

print(\"⽤例{}执⾏结束--\".format(self))

# 当成测试⽤例类中的⽤例执⾏之前,会执⾏该⽅法,print输出的不在报告中显⽰,在控制台显⽰@classmethod

def setUpClass(cls):

print(\"-----setup---classs-----\")

# 当成测试⽤例类中的⽤例执⾏完毕,会执⾏该⽅法,print输出的不在报告中显⽰,在控制台显⽰@classmethod

def tearDownClass(cls):

print(\"-----teardown---classs-----\")

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务