当前位置: 首页 > news >正文

【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&#xff1f; 本文将深度解析。 该项目既不直接贡献数据&#xff0c;也不直接贡献算力。 而是通过区块链网络和激励机制&#xff0c;来对不同的算法进行调度和…...

领略Java内部类的“内部”

内部类有两种情况&#xff1a; (1) 在类中定义一个类(私有内部类&#xff0c;静态内部类) (2) 在方法中定义一个类(局部内部类&#xff0c;匿名内部类) 1、私有内部类 —— 在方法之间定义的内部类&#xff0c;非静态 我们首先看看类中内部类的两个特点&#xff1a; (1) 在外部…...

PHP 提取数组中的特定的值

需求&#xff1a; 前端展示&#xff1a; &#xff08;1&#xff09;之前的页面&#xff1a; &#xff08;2&#xff09;修改后的页面&#xff1a; 之前接口返回的数据 &#xff1a; 解决办法&#xff1a;提取tags 中的 ’约 的数组 添加到一个新的数组中去 1&#xff1a;一开…...

SpringBoot、JAVA中excel、rtf、doc转PDF

话不多说&#xff0c;直接上干货 // 官方文档的要求 无需理会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.柱状图中最大的矩形

完结&#xff01;撒花&#xff01; LeetCode 84.柱状图中最大的矩形 题目链接&#xff1a; LeetCode 84.柱状图中最大的矩形 代码&#xff1a; class Solution { public:int largestRectangleArea(vector<int>& heights) {heights.insert(heights.begin(),0);he…...

python跟C++选哪个?

选择使用Python还是C取决于你的具体需求和项目背景。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信22&#xff0c;我在后台发给你。 在通信工程行业…...

速锐得深入解析吉利几何CAN总线数据通信网络的拓扑层级框架技术

在现代汽车工业中&#xff0c;车辆的电子控制单元&#xff08;ECU&#xff09;之间的通信至关重要。这种通信大多通过控制器局域网络&#xff08;CAN&#xff09;总线实现&#xff0c;它是德国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中发现一个漏洞&#xff0c;并被列为严重漏洞。该漏洞影响文件general/system/seal_manage/dianju/delete_log.php的未知代码。对参数 DELETE_STR 的操作会导致 sql 注入。 2、影响范围 通达OA版本11.10之前 3、复现环境 FOFA搜索&#xff1a;app"TDX…...

数据结构(七)复杂度渐进表示

数据结构&#xff08;七&#xff09;复杂度渐进表示 要点&#xff1a;复杂度相加取较大值&#xff0c;嵌套取二者乘积 思考&#xff1a;为什么只需要知道复杂度的趋势就可以了&#xff1f; 01 复杂度的渐进表示法 Ω复杂度渐进表示法区分复杂度T(n)的上界&#xff08;o&…...

3d如何同时贴两个图在模型上?---模大狮模型网

在3D设计中&#xff0c;为模型贴上纹理或图案是常见的操作&#xff0c;可以使模型更加逼真和生动。然而&#xff0c;有时候我们需要在同一个模型上同时贴上两个不同的图案&#xff0c;这可能会对初学者构成一定的挑战。在本文中&#xff0c;我们将分享一些简单而有效的方法&…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...