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 执行(常用)

给用例打标记,例如 smokeapiui

示例代码

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
相关推荐
金銀銅鐵1 天前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup112 天前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
aqi002 天前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵2 天前
用 Python 实现 Take-Away 游戏
python·游戏
copyer_xyf2 天前
Agent 流程编排
后端·python·agent
copyer_xyf2 天前
Agent RAG
后端·python·agent
copyer_xyf2 天前
【RAG】向量数据库:milvus
后端·python·agent
copyer_xyf2 天前
Agent 记忆管理
后端·python·agent
星云穿梭2 天前
用Python写一个带图形界面的学生管理系统——完整教程
python