Pytest fixture 参数化(params 参数)

简介

pytest 还支持参数化 fixture,即可以为一个 fixture 提供多个不同的值,让多个测试用例使用不同的测试数据。这样可以有效减少重复代码,尤其适合测试多组输入输出的情况。


基本语法

  • params:传入一个列表,包含 Fixture 的不同参数。

  • request.param:可以在 Fixture 函数中通过 request.param 获取当前参数。

    python 复制代码
    import pytest
    
    @pytest.fixture(params=[param1, param2, param3, ...])
    def fixture_name(request):
        return request.param

单参数

  • 代码示例

    python 复制代码
    import pytest
    
    @pytest.fixture(params=[1, 2, 3])
    def number(request):
        yield request.param
        # return request.param  # 效果一致,同时存在只生效一个
    
    def test_number(number):
        assert number > 0
    • 运行结果

多参数

  • 代码示例

    python 复制代码
    import pytest
    
    @pytest.fixture(params=[
       ["user", 123],
       ["appli", 123456]
    ])
    def login(request):
        print(f"用户名:{request.param}")
        yield request.param
    
    def test_demo(login):
        print(f"demo case: 数据为: {login}")
    • 运行结果
相关推荐
lly2024062 分钟前
Ruby CGI方法详解
开发语言
XiYang-DING3 分钟前
【Java】从源码深入理解HashMap和TreeMap
java·开发语言
煜bart8 分钟前
使用 TypeScript 实现算法处理
开发语言·前端·javascript
♛识尔如昼♛9 分钟前
C 基础(7) - 字符输入/输出和输入验证
c语言·开发语言
不知名XL13 分钟前
day01 agent开发基础铺垫
python
小肝一下14 分钟前
c++从入门到跑路——string类
开发语言·c++·职场和发展·string类
无巧不成书021817 分钟前
Unicode编码机制全解析:从核心原理到Java 实战
java·开发语言·java字符编码·unicode 15.1码点
楼田莉子17 分钟前
设计模式:构造器模式
开发语言·c++·后端·学习·设计模式
lly20240618 分钟前
Swift 析构过程
开发语言
-To be number.wan19 分钟前
Python爬取百度指数保姆级教程
爬虫·python