【Pytest官方文档翻译及学习】2.1 如何调用pytest
目录
2.1 如何调用pytest
2.1.1 指定要运行的测试
2.1.2 获取有关版本、选项名称、环境变量的帮助
2.1.3 分析测试执行时间
2.1.4 管理加载插件
2.1.5 调用pytest的其他方式
2.1 如何调用pytest
2.1.1 指定要运行的测试
Pytest支持几种从命令行运行和选择测试的方法。、
在模块中运行测试
pytest test_mod.py
在目录中运行测试
pytest testing/
按关键字表达式运行测试
pytest -k 'MyClass and not method'
这将运行包含与给定名称匹配的名称的测试字符串表达式 (不区分大小写),它可以包括使用文件名、类名和函数名作为变量的Python运算符。上面的例子将运行 TestMyClass.test_something 但不是 TestMyClass.test_method_simple。在Windows系统上运行时使用双引号("")而不是单引号('')来表示表达式。
按节点ID运行测试
每个收集到的测试都被分配一个唯一的节点ID(nodeid),该节点ID由模块文件名和后缀组成,后缀包括类名、函数名和由参数化生成的参数,这些部分以双冒号(::)分隔。
要在模块中运行特定测试,请执行以下操作:
pytest test_mod.py::test_func
在命令行中指定测试方法的另一个示例:
pytest test_mod.py::TestClass::test_method
通过标记表达式运行测试
pytest -m slow
将运行所有用@pytest.mark.slow装饰器装饰的测试。
有关详细信息,请参见 marks。
从包运行测试
pytest --pyargs pkg.testing
这将导入 pkg.testing 并使用其文件系统位置来查找和运行测试。
2.1.2 获取有关版本、选项名称、环境变量的帮助
pytest --version # shows where pytest was imported from(显示pytest的导入位置)
pytest --fixtures # show available builtin function arguments (显示可用的内置函数参数)
pytest -h | --help # show help on command line and config file options(显示有关命令行和配置文件选项的帮助)
2.1.3 分析测试执行时间
在6.0版中进行了更改。
要获得超过1.0秒的最慢10个测试持续时间的列表:
pytest --durations=10 --durations-min=1.0
默认情况下,pytest不会显示太小(<0.005s)的测试持续时间,除非在命令行上传递-vv。
2.1.4 管理加载插件
早期加载插件(Early loading plugins)
您可以使用-p选项在命令行中显示早期加载插件(内部和外部):
pytest -p mypluginmodule
该选项接收一个name参数,该参数可以是:
- 完整的模块虚线名称,例如myproject.plugins。此虚线名称必须是可导入的。
- 插件的入口点名称。这是注册插件时传递给setuptools的名称。例如,要提前加载pytest-cov插件,您可以使用:
pytest -p pytest_cov
禁用插件(Disabling plugins)
要禁用在调用时加载特定插件,请将-p选项与前缀no:一起使用。
示例:要禁用加载插件doctest,该插件负责从文本文件执行doctest测试,请如下调用pytest:
pytest -p no:doctest
2.1.5 调用pytest的其他方式
通过python -m pytest调用pytest
您可以从命令行通过Python解释器调用测试:
python -m pytest [...]
这几乎相当于直接调用命令行脚本pytest[…],只是通过python调用也会将当前目录添加到sys.path中。
从Python代码调用pytest
您可以直接从Python代码中调用pytest:
retcode = pytest.main()
这就好像您要从命令行调用“pytest”一样。它不会引发SystemExit,而是返回退出代码。您可以传入选项和参数:
retcode = pytest.main(["-x", "mytestdir"])
您可以为pytest.main指定其他插件:
# content of myinvoke.py
import sys
import pytest
class MyPlugin:def pytest_sessionfinish(self):print("*** test run reporting finishing")
if __name__ == "__main__":sys.exit(pytest.main(["-qq"], plugins=[MyPlugin()]))
运行它将显示添加了MyPlugin并调用:
$ python myinvoke.py
*** test run reporting finishing
注:
调用pytest.main()将导入测试及其导入的任何模块。由于python导入系统的缓存机制,从同一进程对pytest.main()进行后续调用不会反映调用之间对这些文件的更改。因此,不建议从同一进程多次调用pytest.main()(例如,为了重新运行测试)。
相关文章:
【Pytest官方文档翻译及学习】2.1 如何调用pytest
目录 2.1 如何调用pytest 2.1.1 指定要运行的测试 2.1.2 获取有关版本、选项名称、环境变量的帮助 2.1.3 分析测试执行时间 2.1.4 管理加载插件 2.1.5 调用pytest的其他方式 2.1 如何调用pytest 2.1.1 指定要运行的测试 Pytest支持几种从命令行运行和选择测试的方法。、…...
RabbitMQ的用途
RabbitMQ主要有四个用途,分别是应用解耦、异步提速、削峰填谷、消息分发。详情讲解如下: RabbitMQ介绍、解耦、提速、削峰、分发 详解、RabbitMQ安装 可视化界面讲解 1.应用解耦:提高系统容错性和可维护性 2.异步提速:提升用户体验…...
R语言软件安装及配置
1、下载 网址:www.r-project.org 1.1 下载R 选择download R 选择清华源进行下载 根据自己系统情况下载,我选择windows系统。 先选择base。 选择最新的版本下载。 1.2 下载RTools 下载好后,返回,选择RTools进入后,选…...
网络配置的加密存储
随着数据泄露事件的增加,扰乱了公司的正常工作周期,企业遭受了损失。事实上,数据泄露可以通过存储加密来控制,存储加密是防止黑客对网络数据库造成严重破坏的最有效方法之一。在网络配置管理器中,存储加密可用于存储设…...
你写代码,会关注时间复杂度吗?
虽然面试的时候总是被问到这个问题,但你写代码的时候,真的会想到这个问题吗?时间复杂度,说的当然不是你写的代码执行用了多长时间,而是代码执行语句的次数。 目录 每行代码都需要注意 计算方法 1 例如常量增长 2 …...
【连连国际注册/登录安全分析报告】
连连国际注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨…...
linux进阶高级配置,你需要知道的有哪些(10)-远程访问
1、ssh协议的功能 为客户机提供安全的shell环境(字符界面),用于远程管理 2、openssh的服务说明 服务名:sshd 重启服务:systemctl restart sshd 主配置文件:/etc/ssh/sshd/_config 端口号:tcp 2…...
不显示 表格 style=“display: none;“ 这个默认是不显示的
不显示 表格 style“display: none;” 这个默认是不显示的 取消就可以或者 $(‘#modifyStatusBtn’).show(); <div id"userInfoContainer" style"display: none;"></div>...
Bittensor怎么挖?手把手教你,使用bitget钱包
4月 Binance 上新 TheBittensorHub (TAO), 这个项目究竟做了什么可以令其在上大舞台前就已经在所有通证中排名前 30? 本文将深度解析。 该项目既不直接贡献数据,也不直接贡献算力。 而是通过区块链网络和激励机制,来对不同的算法进行调度和…...
领略Java内部类的“内部”
内部类有两种情况: (1) 在类中定义一个类(私有内部类,静态内部类) (2) 在方法中定义一个类(局部内部类,匿名内部类) 1、私有内部类 —— 在方法之间定义的内部类,非静态 我们首先看看类中内部类的两个特点: (1) 在外部…...
PHP 提取数组中的特定的值
需求: 前端展示: (1)之前的页面: (2)修改后的页面: 之前接口返回的数据 : 解决办法:提取tags 中的 ’约 的数组 添加到一个新的数组中去 1:一开…...
SpringBoot、JAVA中excel、rtf、doc转PDF
话不多说,直接上干货 // 官方文档的要求 无需理会public static boolean getLicense() {boolean result false;try {String s "<License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Wo…...
生信技能45 - 基于docker容器运行生信软件
1. 获取docker镜像 以运行xhmm CNV分析软件为例。 # 搜索仓库镜像 sudo docker search xhmm# 拉取镜像 sudo docker pull ksarathbabu/xhmm_v1.0# 启动镜像,非后台 sudo docker run -it ksarathbabu/xhmm_v1.0 /bin/bash # -i: 交互式操作。 # -t: 终端。 # ksarathbabu/xhmm…...
算法训练营第63天|LeetCode 84.柱状图中最大的矩形
完结!撒花! LeetCode 84.柱状图中最大的矩形 题目链接: LeetCode 84.柱状图中最大的矩形 代码: class Solution { public:int largestRectangleArea(vector<int>& heights) {heights.insert(heights.begin(),0);he…...
python跟C++选哪个?
选择使用Python还是C取决于你的具体需求和项目背景。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信22,我在后台发给你。 在通信工程行业…...
速锐得深入解析吉利几何CAN总线数据通信网络的拓扑层级框架技术
在现代汽车工业中,车辆的电子控制单元(ECU)之间的通信至关重要。这种通信大多通过控制器局域网络(CAN)总线实现,它是德国BOSCH公司于20世纪80年代初开发的一种串行数据通信协议。随着技术的不断进步&#x…...
数据分析的数据模型
数据分析的数据模型 前言一、优化模型1.1线性优化模型1.1.1线性优化模型定义1.1.2线性优化模型求解算法1. 1.2.1图解法1. 1.2.2. 单纯形法 1.1.3 线性优化模型的应用 1.2非线性优化模型1.2.1非线性优化模型定义1.2.2非线性优化划模型求解方法1. 2.2.1有约束非线性模型算法1.2.2…...
SQL注入-通达OA SQL注入漏洞【CVE-2023-4166】原理及检测思路分析
1、漏洞描述 通达OA中发现一个漏洞,并被列为严重漏洞。该漏洞影响文件general/system/seal_manage/dianju/delete_log.php的未知代码。对参数 DELETE_STR 的操作会导致 sql 注入。 2、影响范围 通达OA版本11.10之前 3、复现环境 FOFA搜索:app"TDX…...
数据结构(七)复杂度渐进表示
数据结构(七)复杂度渐进表示 要点:复杂度相加取较大值,嵌套取二者乘积 思考:为什么只需要知道复杂度的趋势就可以了? 01 复杂度的渐进表示法 Ω复杂度渐进表示法区分复杂度T(n)的上界(o&…...
3d如何同时贴两个图在模型上?---模大狮模型网
在3D设计中,为模型贴上纹理或图案是常见的操作,可以使模型更加逼真和生动。然而,有时候我们需要在同一个模型上同时贴上两个不同的图案,这可能会对初学者构成一定的挑战。在本文中,我们将分享一些简单而有效的方法&…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
