Pytest 不同文件的执行顺序

引言
unittest框架和pytest框架编写的测试用例执行顺序,默认根据ACSII码的顺序加载测试用例,数字与字母的顺序为:0~9,A~Z,a~z。

1.对于类来说,class TestAxx 会优先于class TestBxx被执行。

2.对于方法来说,test_aaa()方法会有优先于test_bbb()被执行。

3.对于方法来说,test_01()方法会优先test_aa执行

对于测试目录与测试文件来说,unittest同样是按照这个规则来加载测试用例的。
没有排序执行:

import pytest

class Test_Pytest():
    @classmethod
    def setUpClass(cls):
        print("setup_class方法执行1次")
    @classmethod
    def tearDownClass(cls):
        print("teardown_class方法执行1次")

    def setup(self):
        print("setup 第多次")
    def teardown(self):
        print("teardown 第多次")

    def setup_method(self):
        print("setup_method方法执行多次")

    def teardown_method(self):
        print("teardown_method方法执行多次")
    def test_two(self):
        print('test2')

    def test_one(self):
        print('test1')

    def test_1(self):
        print('testb')

    def test_a(self):
        print('testa')

if __name__=="__main__":
    pytest.main(['-s -v','test_class.py'])
    pytest.main()

结果:

test_class.py::Test_Pytest::test_two setup_method方法执行多次
setup 第多次
PASSED [ 25%]test2
teardown 第多次
teardown_method方法执行多次test_class.py::Test_Pytest::test_one setup_method方法执行多次
setup 第多次
PASSED [ 50%]test1
teardown 第多次
teardown_method方法执行多次
test_class.py::Test_Pytest::test_1 setup_method方法执行多次
setup 第多次
PASSED [ 75%]testb
teardown 第多次
teardown_method方法执行多次

test_class.py::Test_Pytest::test_a setup_method方法执行多次
setup 第多次
PASSED [100%]testa
teardown 第多次
teardown_method方法执行多次

改用例执行顺序的插件
通过@pytest.mark.run(order=1)控制执行顺序

但前天需要下载插件:

  • 命令行窗口输入: pip install pytest-ordering
  • 查看安装版本: pip show pytest-ordering

Pytest 不同文件的执行顺序

import pytest

class Test_Pytest():
    @classmethod
    def setUpClass(cls):
        print("setup_class方法执行1次")
    @classmethod
    def tearDownClass(cls):
        print("teardown_class方法执行1次")

    def setup(self):
        print("setup 第多次")
    def teardown(self):
        print("teardown 第多次")

    def setup_method(self):
        print("setup_method方法执行多次")

    def teardown_method(self):
        print("teardown_method方法执行多次")
    def test_two(self):
        print('test2')

    @pytest.mark.run(order=2)
    def test_one(self):
        print('test1')
    @pytest.mark.run(order=1)
    def test_1(self):
        print('testb')

    def test_a(self):
        print('testa')

if __name__=="__main__":
    pytest.main(['-s -v','test_class.py'])

结果:

Pytest 不同文件的执行顺序

test_class.py::Test_Pytest::test_1 setup_method方法执行多次
setup 第多次
PASSED [ 25%]testb
teardown 第多次
teardown_method方法执行多次

test_class.py::Test_Pytest::test_one setup_method方法执行多次
setup 第多次
PASSED [ 50%]test1
teardown 第多次
teardown_method方法执行多次

test_class.py::Test_Pytest::test_two setup_method方法执行多次
setup 第多次
PASSED [ 75%]test2
teardown 第多次
teardown_method方法执行多次

test_class.py::Test_Pytest::test_a setup_method方法执行多次
setup 第多次
PASSED [100%]testa
teardown 第多次
teardown_method方法执行多次

Original: https://blog.csdn.net/qq_40024178/article/details/118863546
Author: 海阔天空_2018
Title: Pytest 不同文件的执行顺序

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/772995/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 数据集:高考录取分数

    数据集:高考录取分数 下载地址,本文用于观察数据的变化趋势,对数据作相应的排序或可视化,为未来的录取分数做预测。 1. 字段描述 字段名称字段类型字段说明ID数值型数据编号学校字符…

    Python 2023年9月1日
    059
  • 计算机毕业设计(附源码)python学生住宿管理系统

    项目运行环境配置:Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs。 …

    Python 2023年8月6日
    042
  • 说说Spring事件发布机制

    文章目录 前言 一、 使用到事件发布机制的源码 二、Springboot启动过程中用到的部分事件 三、Springboot中的监听器 四、自定义事件源,事件监听器和事件发布器 * …

    Python 2023年9月16日
    032
  • Flask框架-Graphql的使用

    Flask框架-Graphql的使用 – 潘登同学的flask学习笔记 文章目录 * – Flask框架-Graphql的使用 — 潘登同学的flask学习…

    Python 2023年8月12日
    055
  • 基于双孪生网络的表面缺陷无监督异常检测

    Unsupervised Anomaly Detection for Surface Defects with Dual-Siamese Network(基于双孪生网络的表面缺陷无…

    Python 2023年10月8日
    062
  • 汇编逆向-Qt

    Qt源码解析 索引 汇编逆向— 授权破解示例分析 问题模拟 运行环境 x64dbg Windows 10 Qt5.12.3 示例代码 使用Qt显示当前时间,模拟一般授权软件的时间判…

    Python 2023年10月7日
    032
  • 【愚公系列】2022年04月 Python教学课程 61-Django框架Resful接口

    RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT…

    Python 2023年8月5日
    027
  • Graph Neural Network——图神经网络

    本文是跟着李沐老师的论文精度系列进行GNN的学习的,详细链接请见:零基础多图详解图神经网络(GNN/GCN)【论文精读】 该论文的标题为《A Gentle Introduction…

    Python 2023年10月12日
    033
  • 第2关:Numpy数组的基本运算

    任务描述本关的小目标是,学会Numpy二维数组的一些基本操作。相关知识Numpy库可以直接进行一些四则运算,快速的处理两个Numpy数组: a = np.array([[1,2,3…

    Python 2023年8月24日
    058
  • Python获取微信好友数据

    Original: https://www.cnblogs.com/123456feng/p/16049865.htmlAuthor: 蚂蚁ailingTitle: Python获…

    Python 2023年11月9日
    034
  • react笔记_11 redux

    目录 * – redux – + 定义 + 使用时机 + redux基本概念 + * Store * State * Action * reducer + …

    Python 2023年10月10日
    053
  • 【Matplotlib】条形图与直方图

    文章目录 垂直条形图 * 代码 运行结果 代码分析 水平条形图 * 代码 运行结果 并列条形图 * 代码 运行结果 代码分析 条纹填充并列条形图 * 代码 运行结果 代码分析 叠加…

    Python 2023年9月1日
    038
  • 都什么年代了,你居然还连不上GitHub?

    前言 众所周知,GitHub是我们程序员在上班或者学习的时候经常会逛的一个地方[手动狗头],而且如果我们想参与开源项目的话,GitHub也是一个很好的平台。 可问题是,GitHub…

    Python 2023年9月16日
    031
  • Pyside2中嵌入Matplotlib的绘图

    近期遇到一个需求,就是用PySide2做出一个GUI,并且要将后台使用Matplotlib绘制的图显示在界面上。自己琢磨了蛮久,网上也搜了不少资料,但都感觉参差不齐,所以就自己总结…

    Python 2023年9月3日
    051
  • 拖拖拽拽之间,用Python绘制了发表级图表

    今天分享一个工具 sviewgui,拖拽之间使用Python的Matplotlib、Seaborn。sviewgui是一个PyQt5 GUI ,底层为Matplotlib、Seab…

    Python 2023年8月22日
    048
  • bilibili视频弹幕爬取+词云

    仅供学习交流研究使用 1. 爬取思路 爬取思路大致相通 获取视频的弹幕api链接 向服务器发起请求 获取服务器返回的响应response 解析html网页,得到想要的信息 保存我们…

    Python 2023年6月15日
    060
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球