我正在使用pytest的parametrize註釋將params傳遞到類中。我能夠使用測試方法中的參數,但是我無法弄清楚如何使用setup_class方法中的參數。pytest:如何將類參數傳遞給setup_class
import pytest
params = ['A','B','C']
@pytest.mark.parametrize('n', params)
class TestFoo:
def setup_class(cls):
print ("setup class:TestFoo")
# Do some setup based on param
def test_something(self, n):
assert n != 'D'
def test_something_else(self, n):
assert n != 'D'
我嘗試添加 'N' 像測試方法的參數,如:
def setup_class(cls, n):
print ("setup class:TestFoo")
# Do some setup based on param
這將導致一個錯誤:
self = <Class 'TestFoo'>
def setup(self):
setup_class = xunitsetup(self.obj, 'setup_class')
if setup_class is not None:
setup_class = getattr(setup_class, 'im_func', setup_class)
setup_class = getattr(setup_class, '__func__', setup_class)
> setup_class(self.obj)
E TypeError: setup_class() takes exactly 2 arguments (1 given)
有一些其他的方式使用setup_class方法中的參數?
這並不能真正解決什麼,我試圖做的。在每個測試中,'n'是參數列表中的一個項目。在你的例子中,你將整個列表分配給cls.n. 通過在課堂上做到這一點,我想要的是,對於項目'A',運行特定於項目'A'的設置,然後運行項目'A'的測試。 – user2945303
另外,這是什麼?例如,它甚至不在類中使用裝飾器設置方法,沒有相應的拆卸,等等。 – lpapp