首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带模块范围夹具的pytest.xdist

带模块范围夹具的pytest.xdist
EN

Stack Overflow用户
提问于 2020-03-12 13:26:19
回答 1查看 124关注 0票数 1

该夹具将运行多少次:

代码语言:javascript
复制
@pytest.fixture(scope="module")
def foo():
   return True

def test1(foo):
   pass

def test2(foo):
   pass
EN

回答 1

Stack Overflow用户

发布于 2022-10-21 14:23:59

它将每xdist工作线程运行一次。

这不是您作为一个新用户所期望的,但是解释是每个xdist工作进程实际上都在运行一个完整的不同的会话,每个会话中只有一个测试用例的子集。

这种错误的假设--一个pytest调用等于一个测试会话--今天也让我感到震惊,只是更糟,因为我有一个参数化的cpu和内存繁重的模块范围的夹具(在许多不同的输入文件上作为子进程运行测试的二进制文件),因此在许多测试案例中都使用了它,因此它在每个工作人员的每个文件中运行一次,并将我的cpu固定了几分钟,然后使我耗尽了交换。

我的解决方案是使用pytest -n auto =loadscope,按顺序运行所有使用该特定夹具的测试,并且仍然并行地执行其他有用的工作。

在2018年的这个问题中,有一些有用的解决方法可以用来解决一些用例:https://github.com/pytest-dev/pytest-xdist/issues/271

从2013年起,讨论本身就有了很大的历史。他们最终表示,这不是他们的问题,因为当不使用xdist外接程序:https://github.com/pytest-dev/pytest/issues/252时,会话按预期工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60655102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档