pytest指定用例_pytest如何循环执行用例

pytest指定用例_pytest如何循环执行用例前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.
有些同学在写用例的时候,用例写了先后顺序, 有先后顺序后,后面还会有新的问题(如:上个用例返回数据作为下个用例传参,等等一系列的问题。。。)
github 上有个pytest-ordering插件可以控制用例的执行顺序,github插件地址https://github.com/ftobia/pytest-ordering
 

安装依赖包

pip3 install pytest-ordering

 

小例子

先看pytest默认的执行顺序,是按 test_ording.py 文件写的用例先后顺序执行的

import pytest


def test_1():
    print("用例1")
    assert True


def test_2():
    print("用例2")
    assert True


def test_3():
    print("用例3")
    assert True

运行结果

collecting ... collected 3 items

test_1.py::test_1 PASSED                                                 [ 33%]用例1

test_1.py::test_2 PASSED                                                 [ 66%]用例2

test_1.py::test_3 PASSED                                                 [100%]用例3


============================== 3 passed in 0.02s ===============================

 

使用 pytest-ordering 插件后改变测试用例顺序

import pytest


@pytest.mark.run(order=3)
def test_1():
    print("用例1")
    assert True


@pytest.mark.run(order=1)
def test_2():
    print("用例2")
    assert True


@pytest.mark.run(order=2)
def test_3():
    print("用例3")
    assert True

运行结果

collecting ... collected 3 items

test_1.py::test_2 PASSED                                                 [ 33%]用例2

test_1.py::test_3 PASSED                                                 [ 66%]用例3

test_1.py::test_1 PASSED                                                 [100%]用例1


============================== 3 passed in 0.02s ===============================

这样就是按指定的顺序执行的用例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165973.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android3d画廊自动切换,GitHub – lzjin/ViewPagerGallery: 支持无限滑动的3D视觉的画廊效果、 平面普通广告栏轮播…

    android3d画廊自动切换,GitHub – lzjin/ViewPagerGallery: 支持无限滑动的3D视觉的画廊效果、 平面普通广告栏轮播…ViewPagerGallery3D轮播图片博客讲解地址,欢迎前往查看欢迎大家Star,老铁给鼓励呗主要功能支持左右无限滑动轮播支持3D效果的画廊轮播支持平面铺满常见轮播支持平面自定义间距轮播支持网络缓存图片(使用的Glide4.9)支持自定义指示器图标(默认指示器个数与url一样)支持自定义圆角支持自动切换图片,间隔默认5秒;手指滑动时停止定时器API方法介绍initBanner(urlList…

    2022年6月12日
    41
  • Linux 软连接「建议收藏」

    Linux 软连接「建议收藏」1.Linux链接概念Linux链接分两种,一种被称为硬链接(HardLink),另一种被称为符号链接(SymbolicLink)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(InodeIndex)。在Linux中,多个文件名指向同一索引节点是存在的。一

    2022年9月30日
    2
  • java基础案例4-4学生和老师「建议收藏」

    java基础案例4-4学生和老师「建议收藏」packagecom.itheima;importjava.util.Scanner;abstractclassPerson{voidspeak(){}}classTeacherextendsPerson{privateStringname;voidsetName(Stringname){this.name=name;}StringgetName(){returnname;.

    2022年6月20日
    36
  • send()、sendto()和recv()、recvfrom()的使用

    send()、sendto()和recv()、recvfrom()的使用udp通讯中的sendto()需要在参数里指定接收方的地址/端口,recvfrom()则在参数中存放接收发送方的地址/端口,与之对应的send()和recv()则不需要如此,但是在调用send()之前,需要为套接字指定接收方的地址/端口(这样该函数才知道要把数据发往哪里),在调用recv()之前,可以为套接字指定发送方的地址/端口,这样该函数就只接收指定的发送方的数据,当然若不指定也可,该函数就可以

    2022年7月23日
    9
  • 基于HTML5移动app开发教程一

    基于HTML5移动app开发教程一一摘要现在教大家创建第一个移动APP应用,在这里不需要大家对HTML相关知识特别熟练,只要大家能看懂html,js代码,就可以轻松创建一个基于HTML5webAPP应用.二整体效果三整个框架图四具体实现1.页面引导图第一步manifest.json参数设置如图:第二步在index.html(这个文件相当于iOS中的appdelegate.m)加上引导图代码第三步在mui.plu

    2022年5月6日
    80
  • noip2012借教室_noip 百度网盘

    noip2012借教室_noip 百度网盘借教室在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj,sj,tj,表示某租借者需要从第sj天到第tj天租借教室(

    2022年8月22日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号