51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2655|回复: 2
打印 上一主题 下一主题

python unittest 框架理解

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-2 15:17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
unittest基本原理

这里简单介绍下unittest模块。

unittest是python的标准测试库,相比于其他测试框架是python目前使用最广的测试框架。

unittest有四个比较重要的概念是test fixture, test case, test suite, test runner, 。

test fixture:The test fixture is everything we need to have in place to exercise the sut。简单来说就是做一些测
试过程中需要准备的东西,比如创建临时的数据库,文件和目录等,其中 setUp() 和 setDown() 是最常用的方法

test case:用户自定义的测试case的基类,调用run()方法,会依次调用setUP方法、执行用例的方法、tear
Down()方法。

test suite:测试用例集合,可以通过addTest()方法手动增加Test Case,也可通过TestLoader自动添加Test Case,
TestLoader在添加用例时,会没有顺序。

test runner:运行测试用例的驱动类,可以执行TestCase,也可执行TestSuite。执行后TestCase和Testsuite会自
动管理TestResult。

通过dir(unittest),我们可以看到unittest全部的属性和方法,他们的关系如下图所示。


unittest主要类关系

正常调用unittest的流程是,TestLoader 自动将测试用例TestCase中加载到TestSuite里,TextTestRunner调用
TestSuite的run方法,顺序执行里面的TestCase中以test开头的方法,并得到测试结果TestResult。在执行Test
Case过程中,先进行SetUp()环境准备,执行测试代码,最后tearDown()进行测试的还原。

其中TestLoader在加载过程中,进行添加的TestCase是没有顺序的。一个TestCase里如果存在多个验证方法的
话,会按照方法中test后方首字母的ascii码从小到大排序后执行。

可以通过手动调用TestSuite的addTest、addTests方法来动态添加TestCase,这样既可以确定添加用例的执行
顺序,也可避免TestCase中的验证方法一定要用test开头。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-17 22:48 , Processed in 0.068149 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表