python unittest框架理解
整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用。
unittest是python的标准测试库,相比于其他测试框架是python目前使用最广的测试框架。
Unittest framework
正常调用unittest的流程是:
1、TestLoader 自动将测试用例TestCase中加载到TestSuite里
2、在执行TestCase过程中,先进行SetUp()环境准备,执行测试代码。
3、TextTestRunner调用TestSuite的run方法,顺序执行里面的TestCase中以test开头的方法,其中TestLoader在加载过程中,进行添加的TestCase是没有顺序的。一个TestCase里如果存在多个验证方法的话,会按照方法中test后方首字母的排序进行执行。可以通过手动调用TestSuite的addTest、addTests方法来动态添加TestCase,这样既可以确定添加用例的执行顺序,也可避免TestCase中的验证方法一定要用test开头。
4、最后tearDown()进行测试的还原。
5、得到测试结果TestResult。
Keywords
TestCase: The individual unit of testing.
TestSuite: A collection of test cases, test suites, or both. It is used to aggregate tests that should be executed together.
TestLoader: Load the test cases to the test suite.
TestRunner: A component which orchestrates the execution of tests and provides the outcome to the user.
TestFixture: Represents the preparation needed to perform one or more tests, and any associate cleanup actions. setUp(), tearDown(), setUpClass(), tearDownClass()
Decorator: skip, skipIf, skipUnless, expectedFailure
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方法、执行用例的方法、tearDown()方法。
test suite:测试用例集合,可以通过addTest()方法手动增加Test Case,也可通过TestLoader自动添加Test Case,TestLoader在添加用例时,会没有顺序。
test runner:运行测试用例的驱动类,可以执行TestCase,也可执行TestSuite。执行后TestCase和Testsuite会自动管理TestResult。
Command line
python -m unittest xxx
python -m unittest -h
python -m unittest discover # discovery the test cases(test*.py) and execute automatically
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
编写高性能的Java代码需要注意的4个问题
一、并发 Unable to create new native thread …… 问题1:Java中创建一个线程消耗多少内存? 每个线程有独自的栈内存,共享堆内存 问题2:一台机器可以创建多少线程? CPU,内存,操作系统,JVM,应用服务器 我们编写一段示例代码,来验证下线程池与非线程池的区别: //线程池和非线程池的区别 public class ThreadPool { public static int times = 100;//100,1000,10000 public static ArrayBlockingQueue arrayWorkQueue = new ArrayBlockingQueue(1000); public static ExecutorService threadP
- 下一篇
阿里云免费套餐上云实践
一、进入首页,最新活动 ---》新手上路 --》阿里云免费套餐 --》免费领取 领取完之后,为了接下来在服务器上发布项目一切顺利,需要修改些许配置。修改实例密码:控制台 --》云服务器ECS --》云服务器 --》 重置实例密码 然后修改下服务器的安全组,这样才可以在远程浏览器访问服务器和连接数据库:控制台 --》云服务器ECS --》网络与安全 --》安全组 --》配置规则 --》添加安全组规则可以根据需要进行限制,下面这样配置就什么访问都放行了: 加入安全组后,重启服务器,就可以通过Shell连接阿里云服务器了。 二、连接配置服务器环境Shell连接阿里云服务器:账号就是服务器的IP,密码是刚刚修改的重置实例密码,连接成功如下:我修改了服务器的自己名字,之前是:i-wz9dg8xo32rid090o9tu,我改为:tjt 刚刚购买的阿里云服务器里面空空如也,什么也没有,根据自己的项目都需要,在服务器上配置必要的环境;这里初步简单安装了:JDK、Mysql、Redis和Tomcat; 1、安装JDK:由于是完全空的服务器,不用卸载之前的openJDK,直接上传JKD安装,安装了太多遍...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果