对应的视频教程:https://www.bilibili.com/video/BV1py4y1t7bJ?p=4

# 默认规则

  1. 模块名必须以 test_开头或者_test 结尾
  2. 测试类必须以 Test 开头,并且不能有 init 方法
  3. 测试方法必须以 test 开头

# 运行方式

  1. 主函数模式
  2. 命令行模式
  3. 通过读取 pytest.ini 配置文件运行

# 主函数模式

  • 运行所有
test_login.py
import pytest
class Test_login:
    def test_C001001(self):
        print('\ncaseC001001')
        assert 1 == 1
if __name__ == "__main__":
    pytest.main()

注:
pytest.main() 默认会执行目录下所有的测试用例,即使测试类在别的模块中,也会被执行

  • 指定路径执行
pytest.main('-vs', '路径')
  • 根据 nodeid 执行
pytest.main('-vs', '模块路径::类名::方法名')

# 命令行模式

  • 执行所有
    在根目录执行
pytest
  • 指定路径执行
pytest -vs 路径
  • 根据 nodeid 执行
pytest -vs 模块路径::类名::方法名

# 配置文件

pytest.ini 是 pytest 单元测试框架的核心配置文件

  1. 位置:一般放在项目的根目录
  2. 编码:必须是 ANSI
  3. 作用:改变 pytest 默认的行为
  4. 机制:不管是主函数模式、命令行模式,都会读取这个文件
pytest.ini
[pytest]
addopts = -vs
testpaths = ./testcase
python_files = test_*.py
python_classes = Test*
python_functions = test
markers =
  smoke: 冒烟用例
  usermanage: 用户管理模块

# 可用参数

参数说明
-s表示输出调试信息,包括 print 的内容
-v输出详细信息
-n 线程数支持多线程或者分布式运行测试用例
--reruns = 重跑次数设置失败后重跑
-x只要有一个失败,测试停止
--maxfail n失败次数达到 n 时,停止测试
-k根据测试用例的部分字符串指定测试用例

# 执行顺序

pytest 默认是从上到下执行,指定顺序需要 pytest-ordering

# 用装饰器指定用例第 n 个执行
@pytest.mark.run(order=n)

# 分组执行

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

木 白 微信支付

微信支付

木 白 支付宝

支付宝

木 白 贝宝

贝宝