【Pytest03】全网最全最新的Pytest框架快速进阶篇(fixture应用)

fixtrue修饰器标记的方法通常用于在其他函数、模块、类或者整个工程调用时会优先执行,通常会被用于完成预置处理和重复操作。例如:登录,执行SQL等操作。

完整方法如下:fixture(scope=‘function‘,params=None,autouse=False,ids=None,name=None)

参数说明:

1.scope参数:标记方法的作用域。有4个可选值:function(默认,函数)、class(类)、module(模块)、package/session(包)

(1)作用域为函数实例

import pytest

@pytest.fixture(scope=‘function‘,autouse=True)
def login():
    print(‘登录系统‘)

def test_01():
    print(‘测试用例一‘)

class TestCase:

    def test_03(self):
        print(‘测试用例三‘)

    def test04(self):
        print(‘测试用例四‘)

if __name__ == ‘__main__‘:
    pytest.main([‘-s‘,‘pytest-demo.py‘])

注意:该模块中所有的函数在执行之前都会执行login函数。

(2)作用域为类实例一:

import pytest

@pytest.fixture(scope=‘class‘,autouse=True)
def login():
    print(‘登录系统‘)

def test_01():
    print(‘测试用例一‘)

class TestCase1:
    def test_03(self):
        print(‘测试用例三‘)
    def test04(self):
        print(‘测试用例四‘)

class TestCase2:
    def test_05(self):
        print(‘测试用例五‘)
    def test06(self):
        print(‘测试用例六‘)

if __name__ == ‘__main__‘:
    pytest.main([‘-s‘,‘pytest-demo.py‘])

注意:在TestCase1类和TestCase2类中,login方法都只会被执行一次。函数test_01也会执行一次。

(2) 作用域为类实例二:

import pytest

@pytest.fixture()
def login():
    print(‘登录系统‘)

def test_01():
    print(‘测试用例一‘)

@pytest.mark.usefixtures(‘login‘)
class TestCase:

    def test_03(self):
        print(‘测试用例三‘)

    def test04(self):
        print(‘测试用例四‘)

if __name__ == ‘__main__‘:
    pytest.main([‘-s‘,‘pytest-demo.py‘])

注意:此方式函数不会被执行,但是被作用的类中的每个函数执行之前都会执行一次,在测试类前面添加:@pytest.mark.usefixtures(‘login‘) 其中login为函数名。

(3)作用域为module时表示整个模块中都只会执行一次。这里不在累述。

(4)作用域为package时表示整个包都只会执行一次。这里不在累述。

(5)在N个用例中指定某一个用例执行

import pytest

@pytest.fixture()
def login():
    print(‘登录系统‘)

def test_01():
    print(‘测试用例一‘)

class TestCase1:
    def test_03(self):
        print(‘测试用例三‘)
    def test04(self,login):
        print(‘测试用例四‘)

if __name__ == ‘__main__‘:
    pytest.main([‘-s‘,‘pytest-demo.py‘])

注意:test04以参数的形式传入了执行的方法login,这样来指定只有test04方法在执行时才执行login方法。

特别注意:如果在login函数中加入reutrn ‘success‘,在test04方法中加入print(login),那么print(login)打印的值就是返回的success.

原文地址:https://www.cnblogs.com/csmashang/p/12553981.html

时间: 2024-10-10 11:01:37

【Pytest03】全网最全最新的Pytest框架快速进阶篇(fixture应用)的相关文章

【Pytest02】全网最全最新的Pytest框架快速进阶篇

一.Pytest的前置和后置方法 1.Pytest可以集成unittest实现前置和后置 import unittest import pytest class TestCase(unittest.TestCase): def setUp(self) -> None: print('unittest每个用例前置') def tearDown(self) -> None: print('unittest每个用例后置') @classmethod def setUpClass(cls) ->

[资源分享]不吹牛 全网!最全!!最新!!!最优质!!!!

好久没有分享资源干货了,近期多途径收集了很多优质的学习资源,包括Java.Python.Linux.前端.人工智能等优质学习资源,来回馈所有的读者朋友.保证全网最优质!!! 资源领取方式 关注公众号「苦逼的码农」回复相应关键词即可. 长按二维码即可关注. Java篇 1 2018传智黑马JAVA 关键词:传智 2 秒杀系统企业级实战应用(真实工业界案例) 关键词:秒杀 部分截图 Python篇 1 2018年传智播客黑马python15期 关键词:黑马 2 Python Web开发企业直通班 关

全网最全最新的大数据系统学习路径

大数据是对海量数据进行存储.计算.统计.分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据处理手段所无法完成的,其涉及的技术有分布式计算.高并发处理.高可用处理.集群.实时性计算等,汇集了当前IT领域热门流行的IT技术. 大数据入门,需要学习以下这些知识点: 在这里还是要推荐下我自己建的大数据学习交流群:529867072,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我

SOD开源框架MSF(消息服务框架)进阶篇

复习:在上一篇我介绍了MSF的基本订阅,模式就是,客户端A,订阅服务器.客户端B,订阅服务器.通过服务器广播消息, 所有订阅过的客户端都能接到消息. 进阶:在上一篇的基础上,增加客户端A,发送信息到服务器,服务器把接到的信息,再转发给所有订阅了的客户端. 传送门:框架的获取 http://www.cnblogs.com/bluedoctor/ 医生的博客:http://www.pwmis.com/sqlmap/ 正文:首先启动服务器,再单击按钮,给所有监听客户端,发送消息.按钮事件的代码如下:

Web框架django进阶篇

分页 一.Django内置分页 from django.shortcuts import render from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger L = [] for i in range(999): L.append(i) # 模拟数据库 生成数据 def index(request): current_page = request.GET.get('page') # 通过get请求得到当前

全网最全ASP.NET MVC 教程汇总

全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go! 1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MV

自学MVC看这里——全网最全ASP.NET MVC 教程汇总(转)

自学MVC看这里——全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go! 1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习

学习 python 的 pytest 框架需要的基础知识和学习准备

学习 python 的 pytest 框架需要的基础知识和学习准备测试从业者学习 python 应该掌握的内容: 首先是变量和数据类型,其次列表.字典以及 Json 的一些处理,再者就是循环 判断以及函数或类这些内容. 其中的重点: 1.循环判断以及字典这块是重点 2.函数和类,类的学习这块要花较多时间去学习它的集成.封装.多态等,这 是一个不断积累的过程,先把前面的东西弄清楚了,然后去学如何用函数的方 式去处理这些比较基础的内容 python 大纲学习内容详见另一篇文章 扫下方二维码 电商项目

一个小时搭建一个全栈Web应用框架(上)

把想法变为现实的能力是空想家与实干家的区别.不管你是在一家跨国公司工作,还是正在为自己的创业公司而努力,那些有能力将创意转化为真正产品的人,都具有宝贵的技能并拥有明显的实力.如果你能在不到一个小时的时间里创建一个全栈的Web应用,那么你就有能力为自己下一个伟大的想法迅速的的创建一个简单的MVP,或者在工作中快速构建一个新的应用程序. 本文介绍了创建一个简单的全栈Web应用所需的步骤,其中包括一个Python服务器和一个React前端.你可以轻松的在其基础上进行构建,根据你的实际需求进行修改,或是