PyTest自学 - pytest的各种执行方式

server/2025/1/23 8:22:45/

<< 返回目录

pytest_2">1 PyTest自学 - pytest的各种执行方式

  • 不带任何参数执行
      在命令行下将目录切换到测试用例所在目录,执行pytest
tyy@DESKTOP-G7V9IT0 ~
$ cd /cygdrive/d/TYYSOFT/Study/Python/pytesttyy@DESKTOP-G7V9IT0 /cygdrive/d/TYYSOFT/Study/Python/pytest
$ pytest
  • 带用例文件名执行
$ pytest test_feature_subfeature_sample_002.py
  • 执行指定目录下的文件
 pytest ./pytest/

注意:只支持执行子目录下的文件夹,不支持绝对路径。

  • 执行指定文件中的指定函数
$ pytest test_feature_subfreature_sample_001_001.py::test_feature_subfeature_plus_001_001

输出:

======================================= test session starts =======================================
platform win32 -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: D:\TYYSOFT\Study\Python\pytest
collected 1 itemtest_feature_subfreature_sample_001_001.py .                                                 [100%]======================================== 1 passed in 0.01s ========================================
  • 执行类中的所有用例
$ pytest test_feature_subfeature_sample_002.py::TestGroup

输出:

======================================= test session starts =======================================
platform win32 -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: D:\TYYSOFT\Study\Python\pytest
collected 2 itemstest_feature_subfeature_sample_002.py .F                                                     [100%]============================================ FAILURES =============================================
________________________ TestGroup.test_feature_subfeature_sample_002_002 _________________________self = <test_feature_subfeature_sample_002.TestGroup object at 0x0000027875F2A350>def test_feature_subfeature_sample_002_002(self):
>       assert 6 + 3 == 7
E       assert (6 + 3) == 7test_feature_subfeature_sample_002.py:9: AssertionError
===================================== short test summary info =====================================
FAILED test_feature_subfeature_sample_002.py::TestGroup::test_feature_subfeature_sample_002_002 - as
sert (6 + 3) == 7
=================================== 1 failed, 1 passed in 0.07s ===================================
  • 执行指定类中的指定用例
$ pytest test_feature_subfeature_sample_002.py::TestGroup::test_feature_subfeature_sample_002_001

输出:

======================================= test session starts =======================================
platform win32 -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: D:\TYYSOFT\Study\Python\pytest
collected 1 itemtest_feature_subfeature_sample_002.py .                                                      [100%]======================================== 1 passed in 0.01s ========================================
  • 执行多组测试数据
      使用装饰器@pytest.mark.parametrize可以给测试用例传递多组测试数据,每组测试数据会单独执行。
import pytest@pytest.mark.parametrize("input1, input2, expected", [(1, 2, 3),(4, 5, 7),(-1, 1, 0),(0, 0, 0)
])
def test_addition(input1, input2, expected):assert input1 + input2 == expected

执行结果

$ pytest test_feature_subfeature_withdata_001.py
======================================= test session starts =======================================
platform win32 -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: D:\TYYSOFT\Study\Python\pytest
collected 4 itemstest_feature_subfeature_withdata_001.py .F..                                                 [100%]============================================ FAILURES =============================================
______________________________________ test_addition[4-5-7] _______________________________________input1 = 4, input2 = 5, expected = 7@pytest.mark.parametrize("input1, input2, expected", [(1, 2, 3),(4, 5, 7),(-1, 1, 0),(0, 0, 0)])def test_addition(input1, input2, expected):
>       assert input1 + input2 == expected
E       assert (4 + 5) == 7test_feature_subfeature_withdata_001.py:11: AssertionError
===================================== short test summary info =====================================
FAILED test_feature_subfeature_withdata_001.py::test_addition[4-5-7] - assert (4 + 5) == 7
=================================== 1 failed, 3 passed in 0.06s ===================================
  • 不使用pytest命令行,直接运行py文件执行测试用例
      有些读者觉得老要使用命令行执行用例就比较烦,能不能直接在py文件中直接运行?
    只需要在py源文件中做两件事就可以达到这些效果:
  1. import pytest
  2. 添加pytest.main()

示例如下:

import pytest@pytest.mark.parametrize("input1, input2, expected", [(1, 2, 3),(4, 5, 7),(-1, 1, 0),(0, 0, 0)
])
def test_addition(input1, input2, expected):assert input1 + input2 == expectedpytest.main()

  再运行这个文件时,就会执行测试用例!


作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来源自豆包AI,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

<< 返回目录


http://www.ppmy.cn/server/160683.html

相关文章

风电可视化管理,数字孪生智慧风机

采用图扑数字孪生实现智慧风机运行状态的模拟和分析&#xff0c;提升风能发电效率与可靠性&#xff0c;实现智能运维与预测性维护&#xff0c;推动风能行业向更高效、更可持续的发展迈进。

岁序更新:香港峰会 - 以中国创新元素 引领AI数据安全新时代!

在新春佳节前夕&#xff0c;2025年1月15日&#xff0c;天空卫士在香港九龙香格里拉酒店隆重举办“以中国创新元素 引领AI数据安全新时代”为主题的交流会&#xff0c;为香港数字安全领域注入创新活力。 天空卫士2022年进驻香港市场&#xff0c;短短2年时间赢得了香港数字安全生…

【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等

【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等 目录 【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等 优势 适用场景 项目结构 关键代码 优势 消除 switch&#xff1a;将分支逻辑分散到独立的策略类中。 开闭原则&#xff1a;新增类型只需添加新的 TypeHa…

Powershell语言的云计算

PowerShell与云计算&#xff1a;新时代的自动化管理工具 在当今快速发展的信息技术时代&#xff0c;云计算已经成为企业和个人计算资源的主要选择。随着云服务的普及&#xff0c;如何高效地管理和自动化云环境中的资源&#xff0c;成为了IT管理员和开发者们面临的重要挑战。Po…

mq_open创建队列失败

mq_open创建队列失败 Error creating message queue: Invalid argument 问题&#xff1a;linux中mq_open创建队列失败&#xff0c;提示该问题&#xff0c;怎么解决 原因&#xff1a;队列名&#xff08;name&#xff09;问题&#xff1a; 1&#xff09;POSIX消息队列名必须以…

Python 轻松扫描,快速检测:高效IP网段扫描工具全解析

Python 轻松扫描&#xff0c;快速检测&#xff1a;高效IP网段扫描工具全解析 相关资源文件已经打包成EXE文件&#xff0c;可双击直接运行程序&#xff0c;且文章末尾已附上相关源码&#xff0c;以供大家学习交流&#xff0c;博主主页还有更多Python相关程序案例&#xff0c;秉着…

Hadoop•搭建完全分布式集群

听说这里是目录哦 一、安装Hadoop&#x1f955;二、配置Hadoop系统环境变量&#x1f96e;三、验证Hadoop系统环境变量是否配置成功&#x1f9c1;四、修改Hadoop配置文件&#x1f36d;五、分发Hadoop安装目录&#x1f9cb;六、分发系统环境变量文件&#x1f368;七、格式化HDFS文…

Threejs的学习-常用的API

为了方便自己后期查询方便&#xff0c;这里做个记录记录使用过的Threejs的对象&#xff0c;后续慢慢更新&#xff0c;如果觉得有用的话别忘了收藏下 渲染器 WebGLRenderer 负责将3D场景渲染到HTML元素&#xff08;通常是<canvas>&#xff09;上 常用的参数&#xff1…