unittest简单介绍

python中的单元测试框架:doctest,unittest,pytest,nose。
unittest中,setUp()用于测试用例的初始化工作,tearDown()用于测试案例执行之后的善后工作。
unittest提供了全局的main()方法,使用它可以方便地将一个单元测试模块变成可以直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行。
在unittest测试框架中,通过TextTestRunner类提供的run()方法来执行test suit/test case。test runner可以使用图形界面、文本界面,或返回一个特殊的值等方式来表示测试执行的结果。
构建测试集

suite = unittest.TestSuit()
suite.addTest(TestCount("test_add2"))

执行测试

runner = unittest.TextTestRunner()
runner.run(suite)

当测试用例数量较多时,用addTest()添加/删除用例就显得不方便呢,可以使用TestLoader类中的discover()方法,让unittest自动加载用例
TestLoader:该类负责根据各种标准加载测试用例,并将它们返回给测试套件,正常情况下,不需要创建这个类的实例。unittest提供了可以共享的defaultTestLoader类,可以使用其子类和方法创建实例,discover()方法就是其中之一。

discover(start_dir,parttern='test*.py',top_level_dir=None)找到指定目录下所有测试模块,并可递归查到子目录下的测试模块,只有匹配到文件名才能被加载,如果启动的不是顶层目录,则顶层目录必须单独指定。
start_dir:要测试的模块名或测试用例目录
parttern='test*.py':表示用例文件名的匹配原则,此处匹配文件名以"test"开头的".py"类型的文件,"*"表示任意多个字符。
top_level_dir=None:测试模块的顶层目录,如果没有顶层目录默认为Noneimport unittest

test_dir = './'        #定义测试用例的目录为当前目录
discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')
if __name__ = '__main__':
    runner = unittest.TextTestRunner()
    runner.run(discover)

discover()方法会自动根据测试目录(test_dir)匹配查找测试用例文件(test*.py),并将查找到的测试用例组装到测试套件中,因此,可以直接通过run()方法执行discover,大大简化了测试用例的查找与执行
案例执行顺序:
addTest():按案例加载的顺序执行
discover()和main()方法相同,因此,只能通过测试用例的命名来提高执行的优先级

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值