假设我有一个文件fixtures.py
,它定义了一个名为py.test
的简单foobar
夹具。
通常我必须导入该灯具才能使用它(包括所有子灯具),如下所示:
from fixtures import foobar
def test_bazinga(foobar):
请注意,我也不想使用星号导入。
如何导入此灯具以便我可以写:
import fixtures
def test_bazinga(foobar):
这甚至可能吗?似乎是这样,因为py.test
本身定义了这样的固定装置(例如monkeypatch
)。
答案 0 :(得分:14)
灯具及其可见度在pytest中有点奇怪。他们不需要导入,但如果您在test_*.py
文件中定义它们,则只能在该文件中使用。
然而,您可以将它们放在(项目或子文件夹范围)conftest.py中以在多个文件中使用它们。
pytest-internal灯具只是在core plugin中定义,因此无处不在。事实上,conftest.py
基本上只是一个目录插件。
您还可以运行py.test --fixtures
来查看灯具的来源。