问题标签 [xdist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 有没有办法控制 pytest-xdist 如何并行运行测试?
我有以下目录布局:
testsuite*.py 模块的格式如下:
我遇到的问题是我想并行执行“测试套件”,即我希望 testsuite1、testsuite2、testsuite3 和 testsuite4 开始并行执行,但测试套件中的各个测试需要串行执行。
当我使用 py.test 中的“xdist”插件并使用“py.test -n 4”启动测试时,py.test 正在收集所有测试并在 4 个工作人员之间随机负载平衡测试。这导致在“testsuitex.py”模块中每次测试时都要执行“setup_class”方法(这违背了我的目的。我希望每个类只执行一次 setup_class 并在之后连续执行测试)。
基本上我希望执行看起来像:
while worker1, worker2, worker3 and worker4
都是并行执行的。
有没有办法在“pytest-xidst”框架中实现这一点?
我能想到的唯一选择是启动不同的进程以在 runner.py 中单独执行每个测试套件:
python - 拥有全局固定装置时,如何将 Python 单元测试转换为 py.test?
我确实有一组使用 Python 的unittest模块编写的单元测试。他们正在使用 setUpModule() 函数来加载一个全局变量,其中包含运行测试所需的共享“东西”(包括一些 HTTP 会话)。
使用 运行我的测试时unittest
,它们运行良好。py.test
他们失败了。
我对其进行了一些修补,以使其使用旧的pytest夹具功能(碰巧与unittest的名称不同)运行。它有效,但仅在未在多个线程上执行时才有效,这是我确实想使用的功能。
在我的情况下,文档示例毫无用处,因为我确实有 20 个类(unittest.TestCase),每个类中有 10 个测试。显然我不想为每个测试添加一个新参数。
到目前为止,我使用类 setUp() 方法在self中加载共享字典,并在每个测试中从那里使用它。
现在测试:
请记住,我需要一个可以与多个线程一起工作的解决方案,一次调用夹具。
python - 如何在运行多线程测试之前使用 python 正确执行全局夹具?
我有一组 200 个单元测试,它们在使用 py.test 在单个线程上执行时运行正常。
我确实有一个正在配置网络服务器的夹具,因此我可以针对它运行测试。
不过,我需要确保在执行所有其他测试之前只运行一次,如果失败,则必须停止整个过程。如果这成功了,它可以在它想要的任意数量的线程上执行测试。
我怎样才能做到这一点?
python - pytest-xdist 安装后 Pytest 无法识别 -n 选项
我已经在工作的 pytest 环境之上安装了 pytest-xdist:
我收到了这个输出
在这一点上,我试图并行运行我的测试套件
但我收到了这个输出
'py.test --version is' 的输出
并且 pytest-xdist 实际上丢失了。
我错了什么?谢谢。
python - 带有 xdist 的 py.test 没有执行用随机值参数化的测试
有人注意到 pytest 和 xdist 的以下奇怪行为吗?
当尝试运行使用一些随机选择的值进行参数化的测试时,测试实际上并没有运行。如果不使用 xdist,则执行相同的测试没有任何问题。
以下代码可用于重现这一点。
没有 xdists 它工作正常。
使用 xdist 根本不执行任何测试,输出如下
我正在使用的版本:
- 蟒蛇2.7.3
- pytest 2.6.2
- pytest-xdist 1.11
附加说明:
对于一些旧版本(xdist 1.8 和 pytest 2.4.X 或 2.5.X 不记得确切),xdist 在 dsession.py 中停止断言
提前感谢任何帮助如何解决它或至少解决它:)
python - 带有 xdist 的 py.test 跳过所有带有 -n > 1 的测试
我的测试需要 2 分钟才能运行:
…所以我想我会尝试使用xdist
插件并行运行它们。所以我做了:
2 秒将是一个了不起的加速......虽然我有点认为没有运行测试 - 会出现一些点,不是吗?但是,如果我只使用一个进程“并行”运行……</p>
……然后时间恢复正常。
如何使xdist
插件实际运行测试?
更新:
布鲁诺奥利维拉问题的答案:
python - 为什么 pytest + xdist 不捕获输出?
我正在使用 pytest 和 pytest-xdist 进行并行测试运行。在运行测试时,它似乎不-s
支持将标准输出传递到终端的选项。有没有办法做到这一点?我意识到这可能会导致来自不同进程的输出在终端中混乱,但我可以接受。
pytest - 试图了解参数化测试的 pytest-xdist 失败
我有一些使用 conftest 中定义的夹具的参数化测试。使用 pytest-xdist 但使用标准 pytest 通过时,我的测试失败。夹具创建了一个目录,然后由测试使用,我得到了 IOErrors。
从输出中,看起来两个失败的参数化测试要么被收集和/或被多次运行。请注意,在下面的输出中 test_save_load[obj2] 和 test_save_load[obj0] 失败并且它们出现了两次,所以我假设它们正在运行多次。我可以以不同的方式编写测试以不进行参数化;但很想了解这个问题。任何关于正在发生的事情或 pytest-xdist 如何帮助理解问题的想法将不胜感激。
谢谢!
这是我的输出片段:
python - pytest-xdist 每个从属运行 1 个测试
我的场景包括一个服务器,它在发生某些事件时通知附加的 websocket。websocket 查询参数指定应通知客户端的事件类型。
我有一组用于通知的预定义事件,以及一组已知预期匹配事件的 websocket URL。
我想获得的是:
- 启动通知服务(等待事件流)
- 对于每个测试,通过 websocket 附加一个客户端
- 启动事件流
- 流完成后停止通知服务器(关闭 websocket)
- 客户端(测试)在 websocket 闭包上检查接收到的事件是否与预期的匹配
这种情况只有在所有测试同时运行时才有效。出于这个原因,我想到使用“-n”来使用 pytest-xdist。
不幸的是,这似乎不起作用。有 8 个测试我得到的是 4 个测试按我的预期立即运行,但最后 4 个测试仅在第一个测试结束时开始。
如果我正确理解了 pytest-xdist 代码(dession.py:366-368),看起来测试在从属之间被划分为每个至少 2 个测试的块。
显然,这会危及我的设置并解释行为。
有人能想出解决这个问题的方法吗?
python - Wing IDE pytest:如何集成和使用插件(例如xdist)
Wing IDE (Pro) 中的测试工具现在支持 pytest 单元测试框架。
如何集成和使用 pytest 插件,尤其是 xdist?例如,我希望在运行测试时将测试分发到多个 CPU(从 Wing IDE GUI 触发)。
我试过的:
- 我通过包管理器安装了 pytest 和 xdist
- 我在文件的第 333 行添加了
-n3
(xdist-specific 参数run_pytest_xml.py
) (在我的 Ubuntu 上,这是在/usr/lib/wingide5/src/testing/runners/run_pytest_xml.py
)
原来的:
改变:
这没有用。当我单击“运行测试”时,我收到错误消息
在 test_delme.py 中运行 test_asdf 时测试进程突然退出
注意:没有第'-n3'
333 行,测试工作正常。