Python pytest.main() 运行测试用例详解

Mason
Mason
发布时间:2026-10-16| 6人浏览过
原创

本文详细介绍如何使用Python pytest库中的main()函数在代码中运行测试用例。通过解析args和plugins两个核心参数,演示如何模拟命令行操作,包括指定运行目录、文件及特定用例,并讲解-s、-v、-k等常用参数的作用及插件注册方法,帮助开发者灵活集成测试流程。

前言

此前我们主要依赖命令行来执行pytest测试用例,本文将重点讲解如何在Python代码中通过调用pytest.main()函数来运行测试用例。

pytest.main()函数解析

  • args参数接收一个列表对象,列表内包含多个命令行启动时使用的参数。
  • plugins参数同样接收一个列表对象,用于存放初始化阶段需要注册的插件实例。

无参数运行模式

import pytest
# 等同于命令行执行 pytest
# 默认运行的是当前目录及子目录的所有文件夹的测试用例
pytest.main()

带参数运行模式

  • -s:启用后显示程序中print语句或logging模块的输出内容。
  • -v:启用丰富信息模式,输出更详细的用例执行日志。
  • -k:根据字符串匹配运行测试用例。例如:pytest -k add XX.py 表示仅运行XX.py文件中名称包含add的测试用例。
  • -q:启用简单输出模式,不显示环境信息,仅展示结果。
  • -x:当遇到第一条测试用例失败时立即停止测试。这在调试阶段非常实用,因为测试失败时应优先修复问题,而非继续执行后续用例。

在命令行中执行测试时添加-s参数,命令如下:

pytest -s -x

在Python代码中调用pytest.main()实现上述等价效果,代码如下:

import pytest
# 带上-s参数
pytest.main(["-s","-x"])

指定测试用例范围

若需指定运行study文件夹下的所有测试用例,命令行操作为:

pytest study

在代码中通过pytest.main()实现相同功能,对应代码如下:

import pytest
# 运行指定文件夹目录
pytest.main(["study "])

若需运行指定文件study/test_77.py下的所有测试用例,命令行操作为:

pytest study/test_77.py

在代码中通过pytest.main()实现相同功能,对应代码如下:

import pytest
# 运行指定py文件
pytest.main(["study/tset_77.py"])

若需运行指定文件study/test_77.py下的某个特定用例,命令行操作为:

pytest study/test_77.py::tset_01

在代码中通过pytest.main()实现相同功能,对应代码如下:

import pytest
# 运行指定py文件下测试用例
pytest.main(["study/tset_77.py::test_01"])

指定plugins参数

# -*- coding: utf-8 -*-
import pytest
def test_01():
    """测试用例1"""
    name = '小白'
    age = 28
    city = 'Beijing'
    assert name == '小白'
    assert age == 28
    assert city == 'Beijing'
# 自定义插件
class MyPlugin(object):
    def pytest_sessionstart(self):
        print("*** test run start blog地址 https://blog.csdn.net/IT_heima")
if __name__ == '__main__':
	# 通过 plugins 参数指定加载
    pytest.main(['-s', '-v', 'test_77.py'], plugins=[MyPlugin()])

至此,关于Python pytest.main()运行测试用例的介绍已完成。如需了解更多相关Python pytest.main()内容,建议搜索本站历史文章或继续阅读后续相关文章,感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。