python生成器+pytest实现参数化

python生成器+pytest实现参数化定义:生成器是由函数+yield关键字创造出来的写法遇到问题:pytest执行没找到用例(未以test开头命名文件)选择三个执行一个不执行选择二个执行二个不执行

大家好,欢迎来到IT知识分享网。

定义:生成器是由函数+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'])

选择三个执行一个不执行
在这里插入图片描述
选择二个执行二个不执行
在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23052.html

(0)
上一篇 2023-12-16 17:33
下一篇 2023-12-16 20:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信