27-pytest-命令行参数使用-tb/durations/setup-show
Posted 爱学习de测试小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了27-pytest-命令行参数使用-tb/durations/setup-show相关的知识,希望对你有一定的参考价值。
命令行参数使用
前言
- 本篇来学习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')
以上是关于27-pytest-命令行参数使用-tb/durations/setup-show的主要内容,如果未能解决你的问题,请参考以下文章