Python 鸡肉还是鸡蛋

Python 鸡肉还是鸡蛋,python,pytest,fixtures,Python,Pytest,Fixtures,我想使用record\uxml\u属性fixture。 没问题。当它目前可用时,它可以完美地工作。 但是,无论是否安装了该夹具,我都希望我的测试能够顺利运行。当我创建“包装器”装置时, (类似这样的) 我的测试不必经过认知 我的包装器功能下可能存在或可能不存在的任何装置的 def test_simple(): MyXMLWrapper( 'mykeyname', 'mykeyvalue') assert True 我被卡住了,因为为了让我的测试能够正常工作,我似乎必须将re

我想使用
record\uxml\u属性
fixture。 没问题。当它目前可用时,它可以完美地工作。 但是,无论是否安装了该夹具,我都希望我的测试能够顺利运行。当我创建“包装器”装置时, (类似这样的)

我的测试不必经过认知 我的包装器功能下可能存在或可能不存在的任何装置的

def test_simple():  
    MyXMLWrapper( 'mykeyname', 'mykeyvalue')
    assert True
我被卡住了,因为为了让我的测试能够正常工作,我似乎必须将
record\u xml\u属性
fixture作为一个参数来传递,而在没有安装此fixture的环境中,我永远无法做到这一点。 我试过几种方法。
如果我将
MyXMLWrapper
作为一个fixture本身,那么我必须将
record\u xml\u fixture
传递给它,但是如果我将
MyXMLWrapper
定义为一个函数(如上),那么如果它确实存在,我就无法引用
record\u xml\u属性

关于固定装置的工作原理,我在这里不了解什么?
谢谢。

您所说的“是否安装了此设备”是指“使用中的pytest版本是否提供了设备”(即pytest是否为2.8或更高版本)还是其他内容?如果这只是一个依赖项版本控制问题,为什么不能在
testrequirements.txt
或等效文件中指定
pytest>=2.8
。我希望它是版本独立的。(原因是某些测试用例环境固定到特定的Os版本和python版本)任何测试函数(def test_which(…)都能够引用它想要的任何pytest固定装置,例如{def test_mytest(record_xml_property,parm1,parm2):record_xml_property(parm1,parm2)}因此,我想我真正需要知道的是,如何从我自己的函数中引用pytest fixture,它本身不是一个独立的测试函数?(即,它的名称中没有测试)
def test_simple():  
    MyXMLWrapper( 'mykeyname', 'mykeyvalue')
    assert True