打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
pytest文档68-pytest-lazy-fixture 插件

前言

测试用例参数化的时候,使用 pytest.mark.parametrize 参数化传测试数据,如果我们想引用前面 不同fixture 返回的数据当测试用例的入参,前面一篇用fixture 参数化 prams 来间接解决这个问题。
接下来用 pytest-lazy-fixture 插件可以直接在测试用例中参数化时 pytest.mark.parametrize 中使用 fixture

pytest-lazy-fixture 插件

pytest-lazy-fixture 插件是为了解决测试用例中用 @pytest.mark.parametrize 参数化调用fixture的问题,先pip安装

pip install pytest-lazy-fixture

目前使用的版本是 0.6.3

>pip show pytest-lazy-fixture
Name: pytest-lazy-fixture
Version: 0.6.3
Summary: It helps to use fixtures in pytest.mark.parametrize
Home-page: https://github.com/tvorog/pytest-lazy-fixture
Author: Marsel Zaripov
Author-email: marszaripov@gmail.com
License: MIT
Location: e:\python36\lib\site-packages
Requires: pytest
Required-by:

parametrize 使用示例

参数化的时候,其中一些测试数据,来源于前面的 fixture

import pytest
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/

@pytest.fixture(params=[1, 2])
def one(request):
return request.param

@pytest.mark.parametrize('arg1,arg2', [
('val1', pytest.lazy_fixture('one')),
])
def test_func(arg1, arg2):
print(arg1, arg2)
assert arg2 in [1, 2]

运行结果

..\test_y.py val1 1
.val1 2
.

============== 2 passed in 0.04 seconds ===========

fixture 参数化 params

在 fixture 参数化的 params 中也可以使用

import pytest
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/

@pytest.fixture
def one():
return 1

@pytest.fixture
def two():
return 2

@pytest.fixture(params=[
pytest.lazy_fixture('one'),
pytest.lazy_fixture('two')
])
def some(request):
return request.param

def test_func(some):
assert some in [1, 2]

pytest-lazy-fixture 相关的使用可以查看github 地址https://github.com/TvoroG/pytest-lazy-fixture

2021年第六期《python接口自动化+测试开发》课程,1月9号开学(火热报名中!)
1月9-4月1820:30-22:30

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python基础教程之pytest参数化详解
Allure测试报告完整学习笔记
Python 单元测试框架:Pytest
pytest文档14-函数传参和fixture传参数request
如何将 Python 的一个类方法变为多个方法?
【pytest官方文档】解读fixtures - 2. fixtures的调用方式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服