pytest

1.安装

pip install pytest

pytest官网:https://docs.pytest.org/en/stable/

2.编写规则

1.测试文件已test开头(或以test结尾)
2.测试类以Test开头,并且不能带有init方法
3.测试函数以test开头
4.断言使用基本的assert即可

3.pytest使用

1.运行

需要在pycharm设置界面配置
在这里插入图片描述

  • 用绿色执行箭头

在这里插入图片描述

  • 用main 方法执行
if __name__ == '__main__':pytest.main(['demo3.py'])
  • 用命令行
# 1.执行xxx.py文件里面的所有方法
pytest -v -s xxx.py
# 2.执行xxx.py文件里面指定的方法test_func1
pytest xxx.py::test_func1
pytest -k func1 xxxx.py  # 使用模糊匹配,使用-k选项标识

在这里插入图片描述

  • 使用pytest.mark在函数上进行标记
    首先写个配置文件pytest.ini
    在这里插入图片描述
    在测试用例注释执行或不执行
import pytestclass TestLoginCase(object):@pytest.mark.dodef test01(self):print('这是第一条测试用例')@pytest.mark.undodef test02(self):print('这是第二条测试用例')
# 命令执行xxx.py文件里标准执行的测试用例
pytest -m do xxx.py

2.pytest参数化

pytest.mark.parametrize(argnames,argvalues)
argvalues可以是列表,元组,字典

# 列表
data = ['123', '456']@pytest.mark.parametrize('pwd', data)
def test1(pwd):print(pwd)
# 元组
data1 = [('admin', '123', 'mbzx'), ('amdin', '456', 'm24x')]@pytest.mark.parametrize('username, password, vector', data1)
def test2(username, password, vector):print(username, password, vector)
# 字典
data2 = ({'user': 1,'pwd': 2},{'age': 3,'email': 'fg@qq.com'}
)@pytest.mark.parametrize('dic', data2)
def test3(dic):print(dic)
data3 = [pytest.param(1, 2, 3, id="(a+b):pass"),  # id的值可以自定义,只要方便理解每个用例是干什么的即可pytest.param(4, 5, 10, id="(a+b):fail")
]def add(a, b):return a + b@pytest.mark.parametrize('a,b,expect', data3)
def test04(a, b, expect):assert add(a, b) == expect

3.pytest.fixture

1.定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture
2.fixture命名不要以test开头,跟用例区分开。fixture是有返回值,没有返回值默认为None。
3.用例调用fixture的返回值,直接就是把fixture的函数名称当做变量名称。

@pytest.fixture()
def demo():print('这是一个例子')return 1
def test05(demo):print('这是一个测试')

4.setup和teardown

1.模块级(setup_module/teardown_module)开始于模块始末,全局的
2.函数级(setup_function/teardown_fuction)只对函数用例生效(不在类中)

import pytestdef setup_module():print('setup_module')def teardown_module():print('teardown_module')def setup_function():print('setup_function')def teardown_function():print('teardown_function')def test1():print('test1')def test2():print('test2')

在这里插入图片描述
3.类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
4.方法级(setup_method/teardown_method)开始于方法始末(在类中)
5.类里面的(setup/teardown)运行在调用方法的前后

import pytestclass TestCase01(object):@classmethoddef setup_class(cls):print('setup_class')@classmethoddef teardown_class(cls):print('teardown_class')@classmethoddef setup_method(cls):print('setup_method')@classmethoddef teardown_method(cls):print('teardown_method')@classmethoddef setup(cls):print('setup')@classmethoddef taerdown(cls):print('teardown')def test1(self):print('test1')def test2(self):print('test2')def test3(self):print('test3')

在这里插入图片描述

4.生成测试报告

1.安装

pip install allure-pytest

2.官方文档:https://docs.qameta.io/
3.下载allure
地址:https://dl.bintray.com/qameta/generic/io/qameta/allure/2.7.0/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/55910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于树莓派设计的酒店房间号智能识别系统(图像识别)

基于树莓派4B设计的酒店房间号智能识别系统(图像识别) 一、设计需求 酒店房间识别系统的主要目的是:通过图像处理技术,以机器视觉的方式识别光学传感器传回的酒店房间图像中的数字,该系统可以以非接触的方式,以图像的方式获得需要的酒店房间读数,这能极大提高老式的酒店房…

Matlab图像处理-乘法运算

乘法运算 两幅图像进行乘法运算主要实现两个功能: 一是可以实现掩模操作,即屏蔽图像的某些部分; 二是如果一幅图像乘以一个常数因子,如果常数因子大于1,将增强图像的亮度,如果因子小于1则会使图像变暗。…

比特币是怎么回事?

比特币是怎么回事? 一句话描述就是,初始化几个比特币,申请成为矿工组织,发生交易时抢单记账成功可以比特币奖励,随着比特币数量的增加,奖励越来越少。怎么记账成功呢,通过交易信息幸运数字哈希…

NGINX相关配置

NGINX相关配置 NGINX配置信息 nginx 官方帮助文档:http://nginx.org/en/docs/Nginx的配置文件的组成部分: 主配置文件:/conf/nginx.conf(/nginx/conf/nginx.conf) 子配置文件: include conf.d/*.conf#事件驱动相关的配置 同步 event { wo…

MySQL表的增删改查

文章目录 MySQL表的增删改查1. Create1.1 单行数据插入1.2 多行数据插入1.3 插入否则更新1.4 替换 2. Retrieve2.1 SELECT 列2.1.1 全列查询2.1.2 指定列查询2.1.3 查询字段为表达式2.1.4 为查询结果指定别名2.1.5 结果去重 2.2 WHERE 条件2.2.1 英语不及格的同学及英语成绩(&l…

〔017〕Stable Diffusion 之 常用模型推荐 篇

✨ 目录 🎈 模型网站🎈 仿真系列🎈 国风系列🎈 卡通动漫系列🎈 3D系列🎈 一些好用的lora模型 🎈 模型网站 由于现在大模型超级多,导致每种画风的模型太多,那么如何选择最…

Python图片爬虫工具

不废话了,直接上代码: import re import os import requests import tqdmheader{User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36}def getImg(url,idx,path):imgre…

软年架构复用-架构师之路(十一)

软件架构复用 软件产品线是 一组产业密集型系统,规定用公用的 核心资产集成 开发而来。 机会复用 和 系统复用。 机会复用:临时发现有可服用资产立马复用。 系统复用:开发之前进行规划好哪些需要复用。 复用的三个阶段: 获取到…

Compressor For Mac强大视频编辑工具 v4.6.5中文版

Compressor for Mac是苹果公司推出的一款视频压缩工具,可以将高清视频、4K视频、甚至是8K视频压缩成适合网络传输或存储的小文件。Compressor支持多种视频格式,包括H.264、HEVC、ProRes和AVC-Intra等,用户可以根据需要选择不同的压缩格式。 …

CSS笔记

介绍 CSS导入方式 三种方法都将文字设置成了红色 CSS选择器 元素选择器 id选择器 图中div将颜色控制为红色,#name将颜色控制为蓝色,谁控制的范围最小,谁就生效,所以第二个div是蓝色的。id属性值要唯一,否则报错。 clas…

Failed to load ApplicationContext解决办法,spring版本问题

有如下报错: "D:\Program Files\Java\jdk-13.0.1\bin\java.exe" -agentlib:jdwptransportdt_socket,address127.0.0.1:7325,suspendy,servern -ea -Didea.test.cyclic.buffer.size1048576 -Dfile.encodingUTF-8 -classpath "D:\Program Files\JetBr…

nacos总结黑马

SpringCloud实用篇02 0.学习目标 1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我…

Redis 命令

Redis 命令 Redis 命令用于在 redis 服务上执行操作。 要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。 语法 Redis 客户端的基本语法为: $ redis-cli实例 以下实例讲解了如何启动 redis 客户端&#xf…

【Linux】深入理解文件操作

文章目录 初次谈论文件重温C语言文件操作系统文件操作接口openwriteread 再次谈论文件文件描述符文件描述符的分配规则 重定向什么是重定向重定向的本质系统调用接口实现重定向<、>、>> 初次谈论文件 开始之前先谈论一下关于文件的一些共识性问题。 一个文件可以…

wxpython + cef 是优秀的 WebView 组件

CEF 即 (Chromium Embedded Framework)&#xff1b;cef 是优秀的 WebView 组件。 pip install wxpython4.2 wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 MB) Successfully installed wxpython-4.2.0 pip install cefpython3 cefpython3-66.1-py2.py3-none-win_amd64.whl …

LeetCode笔记:Weekly Contest 360

LeetCode笔记&#xff1a;Weekly Contest 360 0. 吐槽1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现 比赛链接&#xff1a;https://leetcode.com/contest/weekly-contest-360/ 0.…

C++学习记录——이십팔 C++11(4)

文章目录 包装器1、functional2、绑定 这一篇比较简短&#xff0c;只是因为后要写异常和智能指针&#xff0c;所以就把它单独放在了一篇博客&#xff0c;后面新开几篇博客来写异常和智能指针 包装器 1、functional 包装器是一个类模板&#xff0c;对可调用对象类型进行再封装…

江西抚州新能源汽车3d扫描零部件逆向抄数测量改装-CASAIM中科广电

汽车改装除了在外观方面越来越受到消费者的青睐&#xff0c;在性能和实用性提升上面的需求也是日趋增多&#xff0c;能快速有效地对客户指定汽车零部件进行一个改装&#xff0c;是每一个汽车改装企业和工程师的追求&#xff0c;也是未来消费者个性化差异化的要求。下面CASAIM中…

Fei-Fei Li-Lecture 16:3D Vision 【斯坦福大学李飞飞CV课程第16讲:3D Vision】

目录 P1 2D Detection and Segmentation​编辑 P2 Video 2D time series P3 Focus on Two Problems P4 Many more topics in 3D Vision P5-10 Multi-View CNN P11 Experiments – Classification & Retrieval P12 3D Shape Representations P13--17 3D Shape Rep…

好用的可视化大屏适配方案

1、scale方案 优点&#xff1a;使用scale适配是最快且有效的&#xff08;等比缩放&#xff09; 缺点&#xff1a; 等比缩放时&#xff0c;项目的上下或者左右是肯定会有留白的 实现步骤 <div className"screen-wrapper"><div className"screen"…