2017-11-13 4 views
1

次のコードでは、test_1テスト関数で変更されていてもlist1の空のパラメータが原因でテストスクリプトが失敗しました。pytest.mark.paramterizeグローバル変数の新しい変更された値を受け入れません

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の新しい値にアクセスするにはどうすればよいですか?

+0

?私はこの機能を呼び出すことができません。 –

+0

pytestは自動的に "test_"接頭辞を持つ関数を実行するので、まずtest_1が実行された後にtest_evalが実行されます.test_1ではglobal_parameterによってlist1の値が変更されますが、test_eval関数では変更されません –

答えて

0

関数を呼び出さないので、list1は更新されません。どちらの機能試験前test_1()を呼び出したり、より良い方法は以下の通りです:あなたは `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) 
関連する問題