大家好,欢迎来到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