unittest单元测试框架

Posted lijinglj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unittest单元测试框架相关的知识,希望对你有一定的参考价值。

unittest

unittest单元测试框架,主要由四部分组成:测试固件、测试用例、测试套件、测试执行器

    【测试固件】有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫部分tearDown()

    【测试用例】中,包含测试固件(可以不写),具体的测试代码的函数。unittest会自动识别test开头的函数是测试代码,一定要用小写的test开头!

    很多测试用例的集合就是【测试套件】,unittest.TestSuite()初始化一个测试套件Suite实例后使用suite.addTest(类名(‘test_测试函数‘))加载测试方法到测试套件中(最常用的是使用discover()方法可以把指定路径下所有测试方法都加载到测试套件中)

    【测试执行器】test runner用来执行加载的测试用例,可以是单个测试用例,也可以是测试套件

   

    例子一:单个执行测试用例

技术分享图片
import unittest

class lesson(unittest.TestCase):
    def test_case1(self):  # 自动识别小写test作为测试代码
        print("写入test case 1")
if __name__ == __main__:
    unittest.main()  # unittest.main()单个执行测试用例
danyi.py

 

    例子二:执行测试套件

技术分享图片
import unittest

 

# 从文件test_case/company/test_getLog加载GetLog类

from test_case.company.test_getLog import GetLog

from test_case.company.test_jiansuo import GetCompanyListR

 

# 使用测试套件,添加GetLog类里面的test_getLogN方法

suite = unittest.TestSuite() # 初始化一个测试套件Suite实例

suite.addTest(GetLog(test_getLogN)) # GetLog是类名,test_getLogN是测试函数

suite.addTest(GetCompanyListR(test_ListRetrieval))

 

# 直接在控制台输出

runner = unittest.TextTestRunner()

runner.run(suite)
taojian.py

 

    例子三:批量加载的方法执行测试套件

    # 在项目下新建,不要在包里

技术分享图片
import unittest

# 批量加载iscover方法里面有三个参数:case_path:这个是待执行用例的目录-pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开头的所有脚本-top_level_dir:这个是顶层目录的名称,一般默认等于None就行了
case_path = rF:apac-mis-test	est_case
discover = unittest.defaultTestLoader.discover(case_path, pattern="test_bianji*.py", top_level_dir=None)

#直接在控制台输出
runner = unittest.TextTestRunner() #discover加载的用例是list集合,用unittest的TextTestRunner的run去执行。
runner.run(discover)
taojian2.py

   

参考:

http://www.cnblogs.com/myal/p/9337394.html

https://www.cnblogs.com/myal/category/1257824.html

   

 

以上是关于unittest单元测试框架的主要内容,如果未能解决你的问题,请参考以下文章

Python单元测试框架:unittest

单元测试框架unittest

基于appium实现的线性代码引用unittest单元测试框架

Python 中 unittest 单元测试框架中需要知识点

python之单元测试框架—unittest(补充)

单元测试框架之unittest