官方文档:https://pytest-cov.readthedocs.io/en/latest/index.html
适配版本解释:
python >= 3.5

利用pip命令安装: pip install pytest-random-order (安装在pytest工程所运行的python环境,python的安装目录或者虚拟环境目录,可以参考之前文章查看运行环境pycharm配置pytest运行环境)
通过pycharm安装:打开设置,按照如下图中安装插件(windows系统)
pytest-random-order运行
利用时无需导入,直接在pytest运行命令中添加参数即可。紧张有以下参数:
--random-order:随机化全体测试会话中所有测试用例的实行顺序。默认包括所有的测试函数、方法和类。--random-order-bucket:设置重新排序的范围,可以是class、module、package、global,parent, grandparent。前面四个比较好理解,剩下两个parent和grandparent指的是用例的父节点和祖父节点(比如class内的用例父节点是class本身,模块内的函数动用例父节点是模块本身)。--random-order-seed:指定一个随机数,以确保每次利用该数字时获取相同的随机顺序。以下是源码中的三个参数的先容信息:
实行带上参数--random-order
设计几条用例如下图:预期是所有用例实行顺序会被打乱。
第1次实行结果:
第2次实行结果:
实际结果显示每次实行顺序都不太相同,跟预期符合。
实行带上参数--random-order-bucket设置两个python文件,里面的用例同上。
1)带上参数--random-order-bucket=module,实行时预期结果是每个文件内的用例实行顺序随机,文件实行顺序不变。
2)带上参数--random-order-bucket=class,实行时预期结果是不同类中的用例随机。
3)带上参数--random-order-bucket=package,实行时预期是全体目录内的用例是随机的
4)带上参数--random-order-bucket=parent,实行时预期是按用例父节点来随机实行用例顺序。
举例:我们在源码中增加下打印条件,打印下父节点和祖父节点。
以参数--random-order-bucket=parent举例,实行后结果如下:
class内的用例父节点是class本身,文件的函数用例父节点是文件本身,那么依次类推文件的父节点是上层文件夹。
实行带上参数--random-order-seed
同样利用上面定义的测试用例
1)参数--random-order-seed=1000时,结果如下;
2)参数--random-order-seed=2000时,结果如下;
3)当我们再次利用--random-order-seed=1000时,重新实行结果如下:
结果显示跟第1次实行时随机顺序同等。
共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”
-----指水点不断地滴,可以滴穿石头;
-----比喻坚持不懈,集细微的力量也能造诣难能的功劳。
----感谢读者的阅读和学习,感激大家。
---祝愿大家都能够生气勃勃,步步高升!
!
!