pytest-类中测试方法、多文件批量执行

pytest-类中测试方法、多文件批量执行,完整、可直接复制运行的写法,覆盖:

  1. 测试类 + 类中方法执行
  2. 多文件批量执行
  3. 按标记(@pytest.mark)执行
  4. 常用组合用法

1. 测试类 + 类中方法在 main 中执行

完整代码

python

运行

复制代码
import pytest

# 测试类(必须 Test 开头)
class TestDemo:
    def test_case1(self):
        assert 1 + 1 == 2

    def test_case2(self):
        assert "pytest" in "hello pytest"

# 独立函数
def test_func1():
    assert True

if __name__ == '__main__':
    # 1. 执行当前文件所有用例(类+函数)
    pytest.main([__file__, "-v", "-s"])

    # 2. 只执行某个类
    # pytest.main([__file__ + "::TestDemo", "-v"])

    # 3. 只执行某个类里的某个方法
    # pytest.main([__file__ + "::TestDemo::test_case1", "-v"])

执行路径规则

plaintext

复制代码
文件.py::类名::方法名

2. 多文件批量执行

假设项目结构:

plaintext

复制代码
tests/
├── test_login.py
├── test_order.py
└── test_pay.py
main.py

在 main.py 中批量执行

python

运行

复制代码
import pytest

if __name__ == '__main__':
    # 1. 执行 tests 目录下所有测试
    pytest.main(["./tests", "-v", "-s"])

    # 2. 执行指定多个文件
    # pytest.main(["./tests/test_login.py", "./tests/test_order.py", "-v"])

    # 3. 只执行某个文件中的某个用例
    # pytest.main(["./tests/test_login.py::TestLogin::test_login_success", "-v"])

3. 按标记 @pytest.mark 执行(常用)

给用例打标记,例如 smoke、api、ui。

示例代码

python

运行

复制代码
import pytest

@pytest.mark.smoke
def test_smoke1():
    assert True

@pytest.mark.smoke
def test_smoke2():
    assert True

@pytest.mark.api
def test_api1():
    assert True

if __name__ == '__main__':
    # 只执行标记为 smoke 的用例
    pytest.main([__file__, "-m", "smoke", "-v"])

    # 执行 smoke 或 api
    # pytest.main([__file__, "-m", "smoke or api", "-v"])

    # 执行非 api
    # pytest.main([__file__, "-m", "not api", "-v"])

4. 最常用完整 main 模板(直接拿去用)

python

运行

复制代码
import pytest

if __name__ == '__main__':
    pytest.main([
        "./tests",       # 测试目录
        "-v",            # 详细
        "-s",            # 显示 print
        "-x",            # 失败即停止
        "--html=report.html",  # 报告
        "--alluredir=./allure-results"
    ])

5. 常用执行语法汇总

表格

场景 写法
当前文件所有用例 pytest.main([__file__])
某个测试类 文件::TestClass
类中某个方法 文件::TestClass::test_func
某个函数 文件::test_func
执行目录 ["./tests"]
按标记执行 -m smoke
相关推荐
懂点Tech6 小时前
ctfshow misc28:GIF 高度修改解题与脚本实现
开发语言·windows·python
comedate6 小时前
SMLib 的 Examples 导读:PyAPI / SM_API / SMLib 三组示例怎么读
python·cad·smlib·examples·sm_api
云和数据.ChenGuang6 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
川石课堂软件测试7 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
美狐美颜SDK开放平台7 小时前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
dtq04247 小时前
C++小案例 - 日志实战
开发语言·c++
万化冥合8 小时前
PyBox屏幕键盘如何辅助演示键盘操作?
python·计算机外设
星夜离尘568 小时前
MATLAB ADC 码流触顶诊断:命中数、缺口分段与削顶不可辨识性
开发语言·matlab
车软学堂8 小时前
从测试转开发,到底要补什么
网络·人工智能·python·功能测试·单片机·车载系统·自动化
天空依然蔚蓝8 小时前
分享一个自动检测网站在线状态的python程序
python·运维开发·1024程序员节