27-pytest-命令行参数使用-tb/durations/setup-show

本文介绍了pytest中关键参数的使用,包括控制报错回溯信息的tb参数(auto/long/short/line/native/no),统计用例执行时间的durations参数,以及显示fixture执行流程的setup-show参数。通过实例演示了如何调整这些参数以获得更有效的测试报告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

  • 本篇来学习pytest命令行执行时,几个很有用的参数

tb 参数

  • 作用:可以设置报错的时候回溯打印内容,可以设置参数(auto/long/short/line/native/no)
可选参数

–tb=auto 有多个用例失败的时候,只打印第一个和最后一个用例的回溯信息
–tb=long 输出最详细的回溯信息
–tb=short 输入assert的一行和系统判断内容
–tb=line 使用一行显示错误信息
–tb=native 只输出python标准库的回溯信息
–tb=no 不显示回溯信息

使用示例
  • 不加参数,显示整个用例信息
# -*- coding: utf-8 -*-
# @Time    : 2022/3/19
# @Author  : 大海

import os


def test_01():
    sum_result = 1 + 2
    expected = 2
    assert sum_result == expected


if __name__ == '__main__':
    os.system('pytest -s test_49.py')

在这里插入图片描述

  • –tb=no 不显示回溯信息
# -*- coding: utf-8 -*-
# @Time    : 2022/3/19
# @Author  : 大海

import os


def test_01():
    sum_result = 1 + 2
    expected = 2
    assert sum_result == expected


if __name__ == '__main__':
    os.system('pytest -s test_49.py --tb=no')

在这里插入图片描述

  • –tb=line 使用一行输出所有的错误信息
# -*- coding: utf-8 -*-
# @Time    : 2022/3/19
# @Author  : 大海

import os


def test_01():
    sum_result = 1 + 2
    expected = 2
    assert sum_result == expected


if __name__ == '__main__':
    os.system('pytest -s test_49.py --tb=line')

在这里插入图片描述

durations参数

  • 作用:统计出每个用例运行的时间
使用示例
  • –durations=0 显示全部用例的运行时间
# -*- coding: utf-8 -*-
# @Time    : 2022/3/19
# @Author  : 大海

import os
import pytest
import time


@pytest.fixture()
def set_up_fixture():
    time.sleep(0.1)
    yield
    time.sleep(0.2)


def test_01(set_up_fixture):
    print("用例1")
    time.sleep(1.0)


def test_02(set_up_fixture):
    print("用例2")
    time.sleep(0.6)


def test_03(set_up_fixture):
    print("用例3")
    time.sleep(1.2)


def test_04(set_up_fixture):
    print("用例4")
    time.sleep(0.3)


def test_05(set_up_fixture):
    print("用例5")
    time.sleep(2.3)


if __name__ == '__main__':
    # --durations=0 显示所有用例执行时间
    os.system('pytest -s test_50.py --durations=0')
  • 用例运行的时候会经历3个阶段:setup,call,teardown。call就是测试用例,setup和teardown就是用例的fixture部分
    在这里插入图片描述
  • –durations=N 显示最慢的N条用例
# -*- coding: utf-8 -*-
# @Time    : 2022/3/19
# @Author  : 大海

import os
import pytest
import time


@pytest.fixture()
def set_up_fixture():
    time.sleep(0.1)
    yield
    time.sleep(0.2)


def test_01(set_up_fixture):
    print("用例1")
    time.sleep(1.0)


def test_02(set_up_fixture):
    print("用例2")
    time.sleep(0.6)


def test_03(set_up_fixture):
    print("用例3")
    time.sleep(1.2)


def test_04(set_up_fixture):
    print("用例4")
    time.sleep(0.3)


def test_05(set_up_fixture):
    print("用例5")
    time.sleep(2.3)


if __name__ == '__main__':
    # --durations=2 显示执行最慢的两条
    os.system('pytest -s test_50.py --durations=2')

在这里插入图片描述

setup-show参数

  • 作用:显示fixture 的执行过程.
使用示例
# -*- coding: utf-8 -*-
# @Time    : 2022/3/19
# @Author  : 大海

import os
import pytest


@pytest.fixture()
def login():
    print("前置操作:准备数据")
    yield
    print("后置操作:清理数据")


def test_01(login):
    a = 1
    b = 1
    assert a == b


def test_02(login):
    a = "hell"
    b = "hello 大海"
    assert a in b


if __name__ == '__main__':
    os.system('pytest -s test_51.py --setup-show')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习de测试小白

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值