有沒有一種方法可以從一個簡單的函數中引用(並調用)一個pytest夾具,該函數本身不是test_ *函數,也不是一個夾具?有沒有辦法從一個簡單的(非測試)函數直接引用pytest fixture?
著名的例子,可以使用夾具:
1)
def test_mytest(some_cool_pytest_fixture_name, the, rest of, my, args):
blah
blah
some_cool_pytest_fixture_name(args)
blah
2)
@pytest.fixture()
def my_new_fixture(some_cool_pytest_fixture_name, the, rest of, my, args):
blah
blah
some_cool_pytest_fixture_name(args)
blah
我希望能夠做到這一點: 3)
def my_simple_function(the, rest of, my, args):
blah
blah
outright.reference.this.pytest.fixture.some_cool_pytest_fixture_name(args)
blah
注:
from pytest import record_xml_property as property_handler
** E ImportError: cannot import name record_xml_property**
^^^這在該組織確實有record_xml_property系統
我的願望是能夠做這樣的事情:
try:
from pytest import record_xml_property as property_handler
except:
@pytest.fixture()
def property_handler(mykey, myval):
print('{0}={1}'.format(mykey,myval)
^^^如果上面能成功,那麼我總是可以依靠property_handler在我身邊。
您的測試代碼應導入您的應用程序代碼。從您的應用程序導入測試代碼不應該是必需的。 Pytest測試運行者執行了一系列魔術,如[assertion rewriting](https://docs.pytest.org/en/latest/assert.html#advanced-assertion-introspection)和猴子修補。 Pytest夾具不能在pytest之外工作。 –
如果您需要一些共享功能,只需將它導入到您的測試中,並將其包裝在那裏的「pytest.fixture」中。 –