我如何为 pytest 夹具起别名?

How can I alias a pytest fixture?

我使用了一些来自第三方库的 pytest fixture,有时它们的名称过于冗长和繁琐。有没有办法为他们创建一个短别名?

例如:来自pytest-djangodjango_assert_max_num_queries 夹具。我想在我的测试中调用它 max_queries

您不能只添加

形式的别名
max_queries = django_assert_max_num_queries

因为灯具在 运行 时按名称查找而不是导入(即使在某些情况下可以导入,也不推荐这样做)。

但您始终可以编写自己的夹具,只生成另一个夹具:

@pytest.fixture
def max_queries(django_assert_max_num_queries):
    yield django_assert_max_num_queries

这样做,max_queries 的行为与 django_assert_max_num_queries 完全相同。
请注意,您应该使用 yield 而不是 return,以确保控制返回到夹具。