我尝试在py.test doctests中使用fixture。 在文档中是getfixture函数,可以直接在doctests中使用。
getfixture('tmpdir')
这可以按预期工作。
现在我尝试使用我自己在conftest.py中定义的灯具。 当我运行py.test --fixtures时,我会看到我的灯具。 但是当我尝试在doctest中获得我的装置时,我得到了这个消息。
008 >>> config = getfixture('config')
UNEXPECTED EXCEPTION: FixtureLookupError()
Traceback (most recent call last):
File "/Users/christian/local/lib/python2.7/doctest.py", line 1254, in __run
compileflags, 1) in test.globs
File "<doctest README.txt[2]>", line 1, in <module>
File "/Users/christian/.buildout/eggs/pytest-2.6.1-py2.7.egg/_pytest/python.py", line 1337, in getfuncargvalue
return self._get_active_fixturedef(argname).cached_result[0]
File "/Users/christian/.buildout/eggs/pytest-2.6.1-py2.7.egg/_pytest/python.py", line 1344, in _get_active_fixturedef
fixturedef = self._getnextfixturedef(argname)
File "/Users/christian/.buildout/eggs/pytest-2.6.1-py2.7.egg/_pytest/python.py", line 1202, in _getnextfixturedef
raise FixtureLookupError(argname, self)
FixtureLookupError
知道这里有什么问题。
答案 0 :(得分:0)
您没有将 conftest.py
与您正在测试的文件放在一起吗? pytest doc 说:
请注意,与普通的 conftest.py 一样,fixture 是在 conftest 所在的目录树中发现的。这意味着如果您将 doctest 与源代码放在一起,则相关的 conftest.py 需要位于同一目录树中。 不会在同级目录树中发现固件!