pytest框架基础

1.生成时间戳的html报告

# pytest 运行项目
import pytest
from datetime import datetime

# 获取时间戳,now()获取现在的时间,strftime()转化成字符串
report_time = datetime.now().strftime("%Y%m%d%H%M%S")
# 字符串拼接
filename = f'pyreport-{report_time}.html'
# 收集用例并运行用例
# 命令行参数放入列表中
pytest.main([f"--html={filename}"])

2.fixture夹具

实现夹具复用,就要封装,测试用例函数调用夹具时,就需要导入模块,但是每次都导入,容易出现错误,那么有没有一种方法可以实现不需要导入而自动读取呢?共享fixture的出现就解决了这个问题。

2.1 共享fixture

共享fixture的实现:

1)将所有的夹具全部放到一个固定的模块文件,conftest.py 文件名固定

conftest.py:

import pytest


# 声明这是一个夹具,这个夹具就是个函数
@pytest.fixture()
def fixt():
    # setUp
    print("每次测试都会执行的")
    # yield 分割线 前置和后置
    yield
    # tearDown
    print("每次测试用例后都会执行的")

2)所有导入夹具的操作就可以省略,pytest运行时会自动在conftest.py中查找

测试用例:不需要进行导入操作

import pytest


class TestFixture:
    # 调用夹具
    def test_fixture(self, fixt):
        assert 1 + 1 == 2


class TestFixture1:
    # 调用夹具
    def test_fixture1(self, fixt):
        assert 1 + 1 == 2

运行结果:

2.2 夹具的作用域

pytest的夹具除了有共享fixture的特性外,还有非常灵活的作用域管理。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值