pytest.mark.paramterize不接受全局变量的新更改值

时间:2017-11-13 11:02:22

标签: python-2.7 pytest

在以下代码中,测试脚本因list1中的空参数失败,即使它在test_1测试函数中已更改。

import pytest,csv
list1 = []

def test_1():
    global list1
    print "IN TEST1"
    list1 = [['a','b','c'],['d','e','f'],['g','h','i']]



@pytest.mark.parametrize("test_input", list1)
def test_eval(test_input):
    print list1
    print "PARAMTERIZE FUNCTION"
    print (test_input)

如何在pytest.parametrize中访问list1的新值?

1 个答案:

答案 0 :(得分:0)

由于您没有调用该函数,因此list1未更新。在测试之前调用函数test_1()或在下面给出更好的方法:

def test_1():
    print "IN TEST1"
    list1 = [['a','b','c'],['d','e','f'],['g','h','i']]
    return list1

@pytest.mark.parametrize("test_input", test_1())
def test_eval(test_input):
    print "PARAMTERIZE FUNCTION"
    print (test_input)