pytest-22-fixture详细介绍-error和failed区别

fixture是pytest的核心功能,也是亮点功能,熟练掌握fixture的使用方法,pytest用起来才会得心应手!

fixture简介

fixture的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行。fixture提供了区别于传统单元测试(setup/teardown)有显著改进:

  • 有独立的命名,并通过声明它们从测试函数、模块、类或整个项目中的使用来激活。
  • 按模块化的方式实现,每个fixture都可以互相调用。
  • fixture的范围从简单的单元扩展到复杂的功能测试,允许根据配置和组件选项对fixture和测试用例进行参数化,或者跨函数 function、类class、模块module或整个测试会话sessio范围。

fixture作为参数传入

定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(),fixture命名不要用test_开头,跟用例区分开。用例才是test_开头的命名。

fixture是可以有返回值的,如果没return默认返回None。用例调用fixture的返回值,直接就是把fixture的函数名称当成变量名称,如下案例

# test_fixture1.py
import pytest

@pytest.fixture()
def user():
    print("获取用户名")
    a = "yoyo"
    return a

def test_1(user):
    assert user == "yoyo"

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

运行结果

============================= test session starts =============================
platform win32 -- Python 3.6.0, pytest-3.6.3, py-1.5.4, pluggy-0.6.0
rootdir: D:\YOYO\fixt, inifile:
plugins: rerunfailures-4.1, metadata-1.7.0, html-1.19.0, allure-adaptor-1.7.10
collected 1 item

test_fixture1.py 获取用户名
.

========================== 1 passed in 0.20 seconds ===========================

error和failed区别

测试结果一般有三种:passed、failed、error。(skip的用例除外)

如果在test_用例里面断言失败,那就是failed

# test_fixture2.py
import pytest

@pytest.fixture()
def user():
    print("获取用户名")
    a = "yoyo"
    return a

def test_1(user):
    assert user == "yoyo111"  # 用例失败就是failed

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

如果在fixture里面断言失败了,那就是error

test_fixture3.py
import pytest

@pytest.fixture()
def user():
    print("获取用户名")
    a = "yoyo"
    assert a == "yoyo123"  # fixture失败就是error
    return a

def test_1(user):
    assert user == "yoyo"

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

还有一种情况也会出现error,那就是自己代码写的有问题,自己本身代码报错,那就是error了。

原文地址:https://www.cnblogs.com/jason89/p/10323747.html

时间: 2024-10-22 10:28:13

pytest-22-fixture详细介绍-error和failed区别的相关文章

python文档22-fixture详细介绍-作为参数传入,error和failed区别

前言 fixture是pytest的核心功能,也是亮点功能,熟练掌握fixture的使用方法,pytest用起来才会得心应手! fixture简介 fixture的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行.fixture提供了区别于传统单元测试(setup/teardown)有显著改进: 有独立的命名,并通过声明它们从测试函数.模块.类或整个项目中的使用来激活. 按模块化的方式实现,每个fixture都可以互相调用. fixture的范围从简单的单元扩展到复杂的功能测试,允许

git push报错:error: RPC failed; result=22, HTTP code = 413

新项目推送到服务器时报错: error: RPC failed; result=22, HTTP code = 413| 7.66 MiB/s    fatal: The remote end hung up unexpectedly 查了下,属于项目中有大文件,而http推送限制造成的,需要修改服务器配置.因为git服务器是通过nginx做反向代理之后实现的,因此需要修改nginx和appache(git服务器): 1.nginx服务器配置:/etc/nginx/conf.d/default.

使用git提交时报错:error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large

Delta compression using up to 4 threads.Compressing objects: 100% (2364/2364), done.Writing objects: 100% (4329/4329), 1.15 MiB | 11.20 MiB/s, done.Total 4329 (delta 2657), reused 3050 (delta 1497)error: RPC failed; HTTP 413 curl 22 The requested URL

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执

Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要  和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码:最后再通过实例来学会使用LinkedList.内容包括:第1部分 LinkedList介绍第2部分 LinkedList数

struts详细介绍

Struts2 1. 目录 1.目录 2.MVC 3.STRUTS2解析 4.标签 5.OGNL 6.国际化 7.类型转换 8.校验 9. 拦截器 10.上传与下载 11.STRUTS2与对JSON的支持 2. MVC 把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller).MVC模式最早由Trygve Reenskaug在1978年提出,在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式.MVC模式的目的是实现一种动态的程式设计,使后

web.xml 详细介绍(转)

web.xml 详细介绍 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文. 3.容器将<context-param>转换为键值对,并交给servletContext. 4.容器创建<listener>中的类实例,创建监听器. 二  Load-on

windows7使用Sphinx+PHP+MySQL详细介绍

安装(Windows) 1.官方下载 Sphinx下载地址: 下载 2.解压并重命名 此处下载版本为3.0.3,将 sphinx 文件夹命名为sphinx 3.文件夹目录介绍 sphinx --api(各语言支持的api) --bin(二进制程序) --doc(文档说明) --etc(配置文件:conf/sql) --misc --src # 手动创建以下两个文件夹 --data --log 4.设置配置文件 (1)将sphinx/etc/sphinx-min.conf.dist文件复制到sph

简述iptales四表五链及详细介绍iptables命令使用方法

简述iptales四表五链及详细介绍iptables命令使用方法 简述iptables四表五链(1)四表 filter:过滤规则表,根据定义的规则过滤符合条件的数据包 nat表:network address translation 地址转换规则表 mangle:修改数据标记规则表 raw:关闭nat表上启动的连接跟踪制,加快封包穿越防火墙的速度 (2)五chain(链) INPUT OUTPUT FORWARD PREROUTING POSTROUTING (3)表<-->链的关系 raw: