Pytest测试用例使用小结
基础使用
Pytest 测试用例实现代码
import pytest
from server.service import Service@pytest.fixture
def service():return Service(logger)class TestService:@classmethoddef setup_class(cls):"""初始化设置一次:return:"""logger.info("{}----类初始化设置".format(cls.__name__))@classmethoddef teardown_class(cls):"""结束后,清除设置:return:"""logger.info("{}----类清除设置".format(cls.__name__))def setup_method(self):"""执行每个方法前,初始化:return:"""logger.info("{}----执行每个方法前,初始化".format(self.__module__))def teardown_method(self):"""执行每个方法后,清除设置:return:"""logger.info("{}----执行每个方法后,清除设置".format(self.__module__)
可在类中添加类前后和方法前后固定执行的操作。
定义一个测试实例
@pytest.mark.parametrize(['params', 'expected'], # 也可使用字符串传入'params, expected'传入[({"title": "测试用例"},Code.OK), # 第一组测试参数]
)
def test_add(self, service, params, expected):result = dialogue_service.add_dialogue(**params)assert result.code == Code.OK
假设TestService类在test_service.py中,运行该类,添加main方法,之后在该文件目录下运行命令python test.service.py
if __name__ == '__main__':pytest.main()
运行测试类中一个测试用例
可在测试函数函数上添加标识装饰器@pytest.mark.[运行名称],如pytest.marks.add
@pytest.mark.add def test_add(self, service, params, expected):result = service.add(**params)assert result.code == Code.OK
如果过需要添加参数,则标识按如下方式添加:
@pytest.mark.parametrize(['params', 'expected'],[pytest.param({"title": "测试用例",},Code.OK,marks=pytest.mark.add),]
)
def test_add(self, service, params, expected):result = service.add(**params)assert result.code == Code.OK
运行命令:pytest -m add
或直接使用命令,指定要运行的测试用例:pytest test_service.py::TestService:test_add
项目包引入路径问题
import os
import sys
current_path = os.getcwd()
sys.path.append(os.path.join(current_path.split('project_name')[0], 'project_name')) # 不添加测试时无法找到正确路径
将当前项目路径添加到系统中。
参考:
Python自动化测试框架unittest与pytest的区别_pytest和unittest哪个好-CSDN博客
相关文章:
Pytest测试用例使用小结
基础使用 Pytest 测试用例实现代码 import pytest from server.service import Servicepytest.fixture def service():return Service(logger)class TestService:classmethoddef setup_class(cls):"""初始化设置一次:return:"""logger.info(&q…...
LeetCode题练习与总结:132 模式--456
一、题目描述 给你一个整数数组 nums ,数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成,并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。 如果 nums 中存在 132 模式的子序列 &a…...
IdentityServer4框架、ASP.NET core Identity
OAuth2.0 IdentityServer4 官网 中文官网 ASP.NET Core Identity提供了一个用来管理和存储用户账户的框架. IdentityServer4是基于ASP.NET Core实现的认证和授权框架,是对OpenID Connect和OAuth 2.0协议的实现。 IdentityServer是一个中间件,它可以添加符合OpenID…...
【分子材料发现】——GAP:催化过程中吸附构型的多模态语言和图学习(数据集处理详解)(二)
Multimodal Language and Graph Learning of Adsorption Configuration in Catalysis https://arxiv.org/abs/2401.07408Paper Data: https://doi.org/10.6084/m9.figshare.27208356.v2 1 Dataset CatBERTa训练的文本字符串输入来源于Open Catalyst 2020 (OC20…...
SpringBoot开发过程中经常遇到问题解决方案分享
目录 1. Spring Boot应用启动缓慢 2. 数据库连接池配置问题 3. Spring Boot应用无法连接外部服务 4. 配置文件读取不生效 5. Spring Boot应用的日志输出不完整 6. Spring Boot中的Transactional事务管理问题 1. Spring Boot应用启动缓慢 问题原因: Spring Boo…...
AR眼镜_消费级工业AR智能眼镜主板硬件解决方案
AR眼镜的研发是一项复杂的软硬件集成工程,它需要在摄影、音频、交互和连接等多个方面提供卓越的基础体验,因此产品的每个细节都显得尤为重要。 在设计AR眼镜时,重量、体积和散热性能都是必须认真考量的关键因素。在芯片平台的选择上ÿ…...
Springboot 核心注解
Spring Boot 是一个基于 Spring 框架的扩展,旨在简化新 Spring 应用的初始搭建以及开发过程。它通过自动配置和约定优于配置的原则,减少了开发者的工作量。Spring Boot 提供了一组核心注解和 Starter 依赖管理工具来帮助开发者快速启动项目。 1. Spring…...
Nacos集群搭建【Oracle作外部数据源】
一、知识点分析 1.Nocas是什么? Nacos是一个动态服务发现、配置管理和服务管理平台。 1.1定义与背景: Nacos,全称为Dynamic Naming and Configuration Service,是由阿里巴巴开源的云原生应用配套工具。它旨在简化微服务架…...
云轴科技ZStack出席中国电信国际EMCP平台香港发布会,持续推动海外合作
近日,以“云聚未来 翼起新篇”为主题的中国电信国际多云服务一站式平台(E-surfing Managed Cloud Platform,简称EMCP平台)新闻发布会在香港成功举办,标志着中国电信国际在云计算服务领域取得了又一重大进展。云轴科技…...
爬虫自动化之drissionpage+SwitchyOmega实现随时切换代理ip
本文介绍了如何使用DrizzlePage进行爬虫自动化,并重点讲解了首次启动时设置代理IP以及通过SwitchyOmega插件实现随时切换代理IP的方法。 安装一次,后面调用就不会再去安装了 下载地址:https://github.com/FelisCatus/SwitchyOmega/releases 这两个文件随便那个都可以,下载…...
docker安装kettle(PDI)并实现web访问
我是MAC电脑M1版本,希望把软件交给docker进行管理,最近公司同事都通过kettle来实现外部数据对接,所以我本地也有安装kettle需求,在网上找到了这个解决方案操作很简单,但出现了无法访问的情况。我的排查方式是ÿ…...
[软件工程]十.可靠性工程(reliable engineering)
1.什么是可靠性工程 我们希望软件在给定的时间内,运行的时候不会崩溃或者发生失效,同时能保护我们的数据和个人信息。我们要能够信任我们所使用的软件,这意味着软件必须是可靠的。可靠性(reliability):系统…...
【Makefile】编译日志之输出重定向符号 >
用法1 make all >& compilelog.txt make all > compilelog.txt这两个编译命令在功能上有一些细微的区别,主要在于标准输出和标准错误的处理方式。 make all >& compilelog.txt 这个命令会将标准输出(stdout)和标准错误&a…...
linux之less
less命令是Linux系统中一个功能强大的文件查看工具,它允许用户分页查看文件内容,并提供了多种快捷键和选项来增强用户体验。以下是less命令的一些常用操作: 基本使用 查看文件使用less命令的基本语法是less [选项] [文件名]。例如࿰…...
算法-字符串-165.比较版本号
一、题目 二、思路解析 1.思路: 比较的是两个版本号它们以“.”作为分割的部分的有效值(即数值)是否一致 2.常用方法: 1.s.split("\\规则"),将字符串按参数规则进行分割并存储在字符串数组中 String[] str …...
List与Set、数组与ArrayList、ArrayList与LinkedList的区别
List 与 Set 的区别: 项ListSet重复允许重复的对象(多个null也可以)不允许重复的对象(null也只能有一个)有序性有序的。 保持了每个元素的插入顺序。即输出顺序就是输入顺序。 有序和无序都有。 HashSet:无…...
如何在 Odoo18 视图中添加关联数据看板按钮 | 免费开源ERP实施诀窍
文 / 开源智造 Odoo亚太金牌服务 引言 关联数据看板按钮乃是 Odoo 当中的一项强效功能,它容许用户顺遂地访问相关记录,或者直接从模型的表单视图施行特定操作。它们为用户给予了对重要信息的疾速访问途径,并简化了工作流程,由此…...
Linux下mysql环境的搭建
1.mysql的下载 去MySQL官网下载mysql的linux压缩包 MySQL :: Download MySQL Community Server 如果下载慢请到网盘中自行下载 通过网盘分享的文件:mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar 链接: https://pan.baidu.com/s/1vUJ-VuTwer1nLPT-haQCqw?pwd6342 提…...
视觉语言模型 Qwen2-VL
视觉语言模型 Qwen2-VL flyfish from PIL import Image import requests import torch from torchvision import io from typing import Dict from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor from modelscope import snapshot_dow…...
浅谈新能源汽车感应钥匙一键启动的步骤和特点
随着汽车智能化技术的发展,无钥匙启动系统还可以与其他智能系统进行集成,如智能车载系统、远程控制系统等。这使得车主可以通过智能手机等智能设备远程控制车辆的启动、解锁、上锁等操作,进一步提升了使用的便捷性和智能化水平。新能源汽车…...
Linux下CMake多版本共存实战:不卸载旧版也能用上新功能
Linux下CMake多版本共存实战:不卸载旧版也能用上新功能 在软件开发的世界里,版本管理就像一场永不停歇的舞蹈。想象一下这样的场景:你正在维护一个历史悠久的C项目,突然客户要求你同时开发一个全新的模块,而这个模块需…...
pg_textsearch:革新Postgres文本搜索的现代工具
【导语:GitHub上的pg_textsearch是一款适用于Postgres的现代排名文本搜索工具,具备简单语法、可配置参数等特性,目前已达v1.0.0版本可用于生产环境,对Postgres文本搜索领域带来新变革。】pg_textsearch:Postgres文本搜…...
菊水PBZ40电源协议详解:从‘*IDN?’到波形设置,一份给硬件测试新人的避坑指南
菊水PBZ40电源协议实战手册:从基础指令到复杂波形配置的工程指南 第一次接触菊水PBZ40可编程电源时,面对满屏的协议指令和参数配置,不少硬件测试工程师都会感到无从下手。这台看似简单的设备,实际上隐藏着许多需要特别注意的细节…...
clusterProfiler进阶指南:如何利用R语言进行多组学数据的功能富集分析与可视化
clusterProfiler进阶指南:如何利用R语言进行多组学数据的功能富集分析与可视化 在生物信息学领域,功能富集分析是将高通量组学数据转化为生物学洞见的关键步骤。作为R/Bioconductor生态中的明星工具,clusterProfiler以其强大的分析能力和丰富…...
2025年9月中国电子学会青少年软件编程(图形化)等级考试试卷(一级)答案 + 解析
25年3月一级真题在线测评:http://jw.52coding.site/s/mwIJDR 青少年软件编程(图形化)等级考试试卷(一级) 一、单选题(共25题,共50分) 1.当前舞台背景为最后一个背景“背景3”,使用“下一个背景”…...
ESP32智能硬件开发实战:基于MCP协议的AI语音助手全栈指南
ESP32智能硬件开发实战:基于MCP协议的AI语音助手全栈指南 【免费下载链接】xiaozhi-esp32 An MCP-based chatbot | 一个基于MCP的聊天机器人 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 在AIoT(人工智能物联网)…...
STC89C52内存告急?手把手教你优化MPU6050 DMP库,让51单片机也能流畅跑姿态解算
STC89C52内存告急?手把手教你优化MPU6050 DMP库,让51单片机也能流畅跑姿态解算 当你在STC89C52这类资源有限的51单片机上尝试运行MPU6050的DMP(Digital Motion Processor)库时,是否遇到过编译失败或运行不稳定的情况&…...
知识获取受限?5款开源工具助你合法解锁付费内容
知识获取受限?5款开源工具助你合法解锁付费内容 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 你是否曾在学术研究关键时刻被期刊付费墙阻挡?是否因新闻网站的…...
3D模型轻量化3大技术路径:实现60%体积缩减与跨平台适配
3D模型轻量化3大技术路径:实现60%体积缩减与跨平台适配 【免费下载链接】threestudio A unified framework for 3D content generation. 项目地址: https://gitcode.com/gh_mirrors/th/threestudio 副标题:解决移动端加载缓慢、Web端交互卡顿、AR…...
如何快速访问AO3镜像站:新手必看的5个实用技巧
如何快速访问AO3镜像站:新手必看的5个实用技巧 【免费下载链接】AO3-Mirror-Site 项目地址: https://gitcode.com/gh_mirrors/ao/AO3-Mirror-Site Archive of Our Own(AO3)是全球最大的同人创作平台,但部分地区访问受限。…...
