python生成器+pytest实现参数化

简介: 定义:生成器是由函数+yield关键字创造出来的写法

定义:生成器是由函数+yield关键字创造出来的写法

遇到问题:

pytest执行没找到用例(未以test开头命名文件)

'''
python生成器+pytest实现参数化
case:模拟从execl或者yaml文件读取出的用例数据
    标题 内容 预取结果 是否执行
'''
import pytest
case=[('标题','内容','预期结果','是'),('标题1','内容1','预期结果1','否'),('标题2','内容2','预期结果2','是'),('标题3','内容3','预期结果3','是')]
def ye():
    '''这里写读取文件的方法,最终读出case格式这样的用例数据,返回一个生成器对象'''
    for i in case:
        print(f'i={i}')
        #如果选择不执行,那这条数据就不会返回出去
        if i[3]=='是':
            # 返回一组用例数据,这个数据使用完成后再次返回下一组数据
            yield i
#使用生成器需要循环读取它返回的每一个值,生成器就是ye()这个函数
# for i in ye():
#     print(i)
#
#     #   ('标题', '内容', '预期结果', '是')
#     #   ('标题2', '内容2', '预期结果2', '是')
#     # ('标题3', '内容3', '预期结果3', '是')
#
#pytest 参数化
#parametrize类似循环读取变量里面的值,可以配合生成器使用,生成器就是ye()这个函数
@pytest.mark.parametrize('title,body,ex,is_execute',ye())
def test(title,body,ex,is_execute):
    print(f'title={title}, body={body} ex={ex},是否执行={is_execute}')
    assert '标题' in title
if __name__ == '__main__':
    pytest.main([r'F:\script\pytest_tool\test_she.py'])

选择三个执行一个不执行

选择二个执行二个不执行

相关文章
|
2天前
|
算法 大数据 Python
Python生成器:优雅而高效的迭代器
Python生成器:优雅而高效的迭代器
|
2天前
|
Python
【Python操作基础】——字典,迭代器和生成器
【Python操作基础】——字典,迭代器和生成器
|
2天前
|
存储 程序员 Python
深入理解Python中的生成器和迭代器
本文将深入探讨Python中生成器和迭代器的概念、原理以及它们在编程中的应用。通过详细解析生成器和迭代器的工作机制,读者将能够更好地理解Python中的迭代器协议、生成器函数以及生成器表达式的使用方法。同时,本文还将介绍生成器和迭代器在Python中的一些常见应用场景,并提供一些实用的编程技巧和最佳实践。
|
2天前
|
Linux Python Windows
python安装pytest
【4月更文挑战第22天】
34 5
|
2天前
|
大数据 Python
python中的推导式、生成器(二)
python中的推导式、生成器(二)
|
2天前
|
索引 Python 容器
python中的推导式、生成器(一)
python中的推导式、生成器(一)
|
2天前
|
存储 Python
深入理解Python中的生成器和迭代器
本文将深入探讨Python中生成器和迭代器的概念及其在实际编程中的应用。通过对生成器和迭代器的原理解析,以及实际案例的演示,读者将能够更好地理解和利用这些强大的编程工具。
|
2天前
|
测试技术 持续交付 Python
Python测试架构pytest
【4月更文挑战第19天】pytest 是一个强大且灵活的 Python 测试框架,它可以帮助你编写高效且可维护的测试。通过遵循上述基本架构指南,你可以开始使用 pytest 来提高你的 Python 项目的质量和可靠性。
10 2
|
2天前
|
运维 Shell Sentinel
第八章 Python可迭代对象、迭代器和生成器
第八章 Python可迭代对象、迭代器和生成器
|
2天前
|
数据采集 存储 大数据
Python中的迭代器与生成器
Python中的迭代器与生成器
15 0