【发布时间】:2018-05-22 20:58:50
【问题描述】:
我有一个名为test_case_params 的测试用例。需要将一些参数(从class Mock_data 获取模拟数据)传递给夹具并检查测试用例中的返回值。我还有其他选择在@pytest.mark.parametrize 和测试用例中使用Mock_data.get_mock_data 吗?目的是确保所有测试用例都使用相同的模拟数据。到目前为止,我所做的是创建一个 mock_data 变量,以便我可以在所有测试用例中使用它,因为整个 Testsuit 都是从 TestFixure 继承的。但我不确定如何编写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
【问题讨论】: