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