私はtest_case_params
という名前のテストケースを持っています。いくつかのパラメータ(模擬データをclass Mock_data
から)をフィクスチャに渡し、テストケースの戻り値をチェックする必要があります。 @pytest.mark.parametrize
とテストケースにMock_data.get_mock_data
を使用する別のオプションがありますか?目的は、すべてのテストケースが同じモックデータを使用していることを確認することです。私がこれまで行ってきたことはmock_data変数を作成して、TestSuit全体がTestFixureから継承されているので、すべてのテストケースにわたって使用できるようにすることです。しかし、私はどのようにpytest.mark.parametrize
の部分を書くことができないのか分かりません。@ pytest.mark.parametrizeのクラス変数の使い方
import pytest
class Mock_data:
@staticmethod
def get_mock_data():
return [1,2,3,4,5]
class TestFixure(object):
@pytest.fixture(scope='function')
def func_fixture(self, request):
print('#do something in fixure{}'.format(request.param))
return request.param
def fin():
print('#do something on finalizer')
request.addfinalizer(fin)
@classmethod
def setup_class(cls):
super(TestFixure, cls).setup_class()
cls.mock_data = Mock_data.get_mock_data()
@classmethod
def teardown_class(cls):
super(TestMember, cls).teardown_class()
class TestSuite(TestFixure):
@pytest.mark.parametrize('func_fixture', [Mock_data.get_mock_data()[1], Mock_data.get_mock_data()[2], Mock_data.get_mock_data()[3]], indirect=['func_fixture'])
def test_case_params(self, func_fixture):
print(func_fixture)
assert func_fixture in self.mock_data