我如何为 pytest 夹具起别名?
How can I alias a pytest fixture?
我使用了一些来自第三方库的 pytest fixture,有时它们的名称过于冗长和繁琐。有没有办法为他们创建一个短别名?
例如:来自pytest-django 的django_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
,以确保控制返回到夹具。
我使用了一些来自第三方库的 pytest fixture,有时它们的名称过于冗长和繁琐。有没有办法为他们创建一个短别名?
例如:来自pytest-django 的django_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
,以确保控制返回到夹具。