一文搞懂Python Unittest测试方法执行顺序

一文搞懂Python Unittest测试方法执行顺序
我们知道,unittest是不需要我们指定对应的方法,说白了,它是从类里面自动获取到咱们的方法,并约定了以test开头的方法都会被视为测试方法。

一文搞懂Python Unittest测试方法执行顺序

可以看到这个比较方法写的很明确了,如果x < y那么返回-1,x = y则返回0,x > y返回1。

其实大家可能不知道Python里面的字符串也是可以比较的,在此必须说明一下字典序。我们来看看这个例子:

猜猜看执行结果,很显然,字典序的比较,是按A-Z的顺序来比较的,如果前缀一样但长度不一样,那么长度长的那个,字典序靠后。

一文搞懂Python Unittest测试方法执行顺序

执行起来,按照字典序,其实是1 10 11 2 3的顺序。

一文搞懂Python Unittest测试方法执行顺序

我们可以把数字按位数拆开,个位数就把10位补0,这样就能达到效果,如果会写100个case,我们就需要补2个0,比如0_0_1,当然一个文件里面也不会有太多case。

如果遇到test_login这种怎么办呢,不是数字结尾的方法。

其实是一样的,可以写成test_数字_业务的模式。番货写了一个装饰器专门解决这样的问题,大家可以去参考下。

2. 回归本质,从根本解决问题

方案1用了番货的装饰器,好是好,但是改变了方法本身的名称,我们其实可以针对他的排序方式入手,按照我们编写case的顺序排序测试方法,就能达到想要的目的。

说说思路:

  1. 手写一个loader继承自TestLoader类,改写里面的排序方法
  2. 在unittest运行的时候传入这个新的loader

来看看完整代码,注释里面写的很完善了。

一文搞懂Python Unittest测试方法执行顺序 一文搞懂Python Unittest测试方法执行顺序
一文搞懂Python Unittest测试方法执行顺序

今天的内容就讲到这里了,看懂的记得给个赞哦~

一文搞懂Python Unittest测试方法执行顺序 伤心的辣条 一文搞懂Python Unittest测试方法执行顺序 微信公众号 一文搞懂Python Unittest测试方法执行顺序 主要分享测试的学习资源,帮助快速了解测试

来源:普通网友

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月13日
下一篇 2021年8月13日

相关推荐