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
相关推荐
pluvium272 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
cmpxr_2 小时前
【C】原码和补码以及环形坐标取模算法
c语言·开发语言·算法
2401_827499992 小时前
python项目实战09-AI智能伴侣(ai_partner_5-6)
开发语言·python
PD我是你的真爱粉2 小时前
MCP 协议详解:从架构、工作流到 Python 技术栈落地
开发语言·python·架构
ZhengEnCi3 小时前
P2G-Python字符串方法完全指南-split、join、strip、replace的Python编程利器
python
是小蟹呀^3 小时前
【总结】LangChain中工具的使用
python·langchain·agent·tool
宝贝儿好3 小时前
【LLM】第二章:文本表示:词袋模型、小案例:基于文本的推荐系统(酒店推荐)
人工智能·python·深度学习·神经网络·自然语言处理·机器人·语音识别
星晨雪海3 小时前
基于 @Resource 的支付 Service 多实现类完整示例
java·开发语言
王夏奇3 小时前
pythonUI界面弹窗设置的几种办法
python·ui