2014-02-05 22 views
0

我做了一些測試,現在我有他們的問題。該測試參數化:是否有任何選項可以運行參數化setup_function?

def pytest_generate_tests(metafunc): 
    ... 
    metafunc.parametrized("param", range(1,2,3) 

def test_sometest(param): 
    ... 

現在我想寫一個setup_function函數,這將知道參數。這樣的事情:

def setup_function(function, param): 
    ... 

所以有沒有什麼選擇,使這個?

感謝

回答

0

做到這一點,最好的方法是使用一個固定的,而不是setup_function()

import pytest 

pytest.fixture(params=[1, 2, 3]) 
def fix(request): 
    if request.param == 1: 
     return 1 
    else: 
     return -1 

def test_sometest(fix): 
    pass 

這也是更好地那麼pytest_generate_tests方法,因爲py.test可以確定哪些測試將被執行在其實際需要開始執行測試之前,這有助於選擇要運行的測試(-k)等。

相關問題