python unittest控制用例的执行顺序

摘要:
为什么要控制顺序?使用过testng的学生都知道,它比junit具有更强大的功能,其中之一就是依赖性测试。什么是依赖性测试?简单地说,当方法A运行时,一个变量的值就是方法B的动态输出值。在这种情况下,必须首先执行B方法。testng的testng方法具有dependent属性,用于指定方法依赖关系。但python的unittet框架(类似于junit)并不依赖于测试功能。单元测试

为什么要进行顺序控制呢?使用过testng的同学就知道,它相对于junit来说有更强大的功能,其中的一个功能就是依赖测试。什么是依赖测试呢?简单的说一下就是,A方法运行时,其中有个变量的取值是B方法的动态产出值。这样就必须先执行B方法。testng的test方法有dependson属性来制定方法的依赖。但是向python的unittet框架,他类似于junit,没有依赖测试的功能。unittest的main()方法执行用例的顺序是按照测试类、测试方法的名字的ASCII顺序来执行测试方法。如果想要控制执行顺序,有以下两种方式:

1、 通过TestSuite按照顺序添加想要执行的方法

     suite = unittest.TestSuite()

     suite.addTest(TestBddClass("method_name_c"))

     suite.addTest(TestBddClass("method_name_a"))

     这样方法的执行顺序就是先执行method_name_c,在执行method_name_a

   这种方式的确定是,你必须要一个个手动去添加,测试过程中,用例个数不可能很少,这样就懵逼了吧。看下一种方式吧。

2、顺应testunit的执行顺序,就是通过控制方法名字来实现。

    比如,我要执行一个交易过程的接口测试,该过程包含两个过程,一个是createOrder(创建订单),一个是confirmOrder(确认订单),并且confirmOrder需要交易ID,而交易ID是createOrder接口的动态产出,所以必须要先执行createOrder。

    如果名字是testCreateOrder和testConfirmOrder的话,那么肯定先执行testConfirmOrder。怎么办呢?那就改名字呗,比如test_a_CreateOrder, test_b_ConfirmOrder

说的有点啰嗦,但大概是这个意思。

     

免责声明:文章转载自《python unittest控制用例的执行顺序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇把一个json字符串转换成对应的c#类型drupal8变量的存储和设定使用yml文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python学习重温(1)自动case生成工具

因为最近工作中,需要设计根据wirshark截获的报文自动产生测试case的小工具,我重温了python。这个笔记,就是根据这个工具的实现,来记录python语法的学习过程。 这个工具的功能如下图所示,其中wirshark cap可以通过wirshark自身的功能导出为pmsl格式,也就是一种XML,同时公司使用的case script也是一种XML,只是...

python之tkinter使用-Grid(网格)布局管理器

1 # 使用tkinter编写登录窗口 2 # Grid(网格)布局管理器会将控件放置到一个二维的表格里,主控件被分割为一系列的行和列 3 # stricky设置对齐方式,参数N/S/W/E分别表示上、下、左、右 4 # columnspan:指定控件跨越多列显示 5 # rowspan:指定控件跨越多行显示 6 # padx、pad...

django之数据库表的单表查询

一、添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name ="海东",course="python",birth="2000-9-9",fenshu=80) Frank_obj.save() # 方式二: mo...

自动化测试 python2.7 与 selenium 2 学习

windows环境搭建 # 下载 python【python 开发环境】 http://python.org/getit/ # 下载 setuptools 【python 的基础包工具】setuptools 是 python 的基础包工具,可以帮助我们轻松的下载,构建,安装,升级,卸载 python的软件包。 http://pypi.python.o...

PythonWeb 服务部署文档及迁移到Linux相关

pythonWeb的部署(Django+Uwsgi): 1、 部署服务器上需要的Python3.6环境: 安装集成了python3.6 和pip ,virtualenv虚拟环境 的Anaconda(Anaconda3-5.0.1-Lin-x86_64.sh) 下载地址 :https://mirrors.tuna.tsinghua.edu.cn/anacon...

后端开发工程师的开发环境配置(Vscode+C/Go/Python等)

前言         我是一名后端开发工程师,主要语言是C、Go、Python。早年做C开发的时候都是在windows下开发,一直使用的是soure insight,尤其是时隔多年更新的4.0版本解决了中文乱码等问题,用起来更是得心应手。后来转到Mac下开发,虽然可以用wine运行windows程序,但总感觉别扭,也是时候做一些新的尝试了。      ...