Pytest 结合数据驱动-csv

 

 

案例:

从csv文件中取值判断是否第一二行的值之和等于第三行的值

1.创建对应目录,准备好对应csv文件

 

 

 

 2.创建operation.py

def my_add(x,y):
    result = x + y
    return result

3.创建test_add.py

关键代码:get_csv()

import csv


import pytest

from func.operation import my_add

def get_csv():
    """
    return 格式:[[1,1,2],[3,6,9]]
    """
    with open('../data/params.csv','r',encoding='utf-8') as file:
        #读取csv文件内容
        raw = csv.reader(file)
        values=[]
        for line in raw: #逐行读取出来,读取出来格式为列表
            values.append(line) #直接添加每行列表到一个总的列表
    print(values)
    return values


class TestWithCSV:
    @pytest.mark.parametrize('x,y,expected', get_csv()) #用参数化装饰器传参
    def test_add(self, x, y, expected):
        assert my_add(int(x), int(y)) == int(expected)

 

posted @ 2022-05-10 12:11  lms21  阅读(130)  评论(0)    收藏  举报