我想在不同的pytest测试文件之间共享数据和预期的失败。让我举个例子。我在test_b.py中测试了test_a.py和B类中的A类。有趣的是,这两个类需要相互兼容,所以我想在相同的数据上测试它们,并将一些数据标记为xfail。我怎么能这样做?
示例数据:
my_test_data = [
('test_data', 'expected_output'),
pytest.mark.xfail(('another_test', 'failing_output')),
]
我可以将它放在conftest.py
中并从测试中导入它,但显式导入感觉不对。
答案 0 :(得分:4)
我通过在夹具上使用参数来修复此问题,该夹具返回测试数据。如果将其放入conftest.py
文件中,则可以自动使用测试文件中的fixture。这是一个例子:
# in conftest.py file
@pytest.fixture(params=my_test_data)
def my_test(request):
return request.params
在conftest.py
中使用参数化数据返回夹具意味着您可以在测试中使用该数据而无需导入它:
# in test files themselves
def test_whatever(my_test):
# Do whatever you like with the test data
print my_test[0]