我想使用record_xml_property
灯具。
没问题。它现在可用时效果很好。
但是,无论是否安装此夹具,我都希望我的测试能够顺利运行。当我创建一个'包装'夹具时,
(像这样)
//this one works nicely when record_xml_property is there
@pytest.fixture()
def real_property_handler( record_xml_property, mykey, myval):
record_xml_property( mykey, myval)
//this does a harmless print instead
@pytest.fixture()
def fallback_property_handler( mykey, myval):
print('{0}={1}].format( mykey, myval))
def MyXMLWrapper( mykey, myval):
try: # I want to use the REAL one if I can
real_property_handler( record_xml_property, mykey, myval)
except: # but still do something nice if it's not
fallback_property_handler( mykey, myval)
我的测试不应该被认识 任何可能或可能不是我的包装函数的夹具
def test_simple():
MyXMLWrapper( 'mykeyname', 'mykeyvalue')
assert True
我被困了,因为为了让我的测试能够正常工作,似乎我必须将record_xml_property
夹具作为参数传递给我,在没有安装此夹具的环境中我永远不会这样做。
我尝试过几件事
如果我将MyXMLWrapper
作为一个夹具本身,那么我必须将record_xml_fixture
传递给它,但如果我将MyXMLWrapper
定义为函数(上图),那么我无法引用{{1}如果它存在的话。
我在这里不了解灯具如何工作? 感谢。