问题标签 [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.

0 投票
2 回答
8894 浏览

python - pytest - 在所有其他测试之后重新运行失败的测试

在我的场景中,我有一个写入文件的测试,以及一个(但可能更多)想要读取该文件的测试。我不能简单地提取将该文件写入函数/夹具,因为它涉及内部正在启动其他二进制文件的一些其他夹具,以及写入该文件的二进制文件。所以我有一个夹具,可以检查文件是否已经存在。

到目前为止我尝试了什么:

  • flaky​​pytest-rerunfailures插件 - 不适合,因为它们都在失败时立即重新运行测试(当文件仍然不存在时),我想将它附加到测试队列的末尾。
  • 手动修改测试队列,如下所示:

...

这种工作,但只有当我在单跑步机上运行时(没有xdist或通过传递 cli arg 打开它-n0,在我的测试报告中我看到如下内容:

使用 xdist 运行时,不会重复 xfailed 测试。有人知道如何进行吗?强制 xdist 刷新测试列表的某种方式?

0 投票
1 回答
271 浏览

python - pytest-xdist 为每个测试生成随机和唯一的端口

我正在使用 pytest-xdist 插件运行一些测试,使用@pytest.mark.parametrize不同的参数运行相同的测试。

作为这些测试的一部分,我需要打开/关闭 Web 服务器,并且端口是在收集时生成的。

xdist 在从属设备上进行测试收集并且它们没有同步,所以我如何保证端口生成的唯一性。

我可以为每个从站使用相同的端口,但我不知道如何存档。

0 投票
2 回答
1851 浏览

selenium - Pytest Xdist 并行执行,防止重新创建数据库

我正在尝试通过使用 4 个线程的并行执行 (-n=4) 来加速我的 python Django Web 应用程序中的 Selenium 测试

在前 4 个测试中,3 个给出以下错误:

我知道我必须指定在并行测试执行之前运行一次设置,以防止多次尝试创建数据库,但是我将如何在 pytest xdist 配置中强制执行此操作?

0 投票
2 回答
991 浏览

pytest - 如何使用 pytest + xdist 调整线程数?

为了在移动设备上运行并行测试,我使用 pytest + xdist。

我想运行与连接设备一样多的线程,仅此而已。

我将“-n 4”作为命令行参数传递,但如果我需要 2 个线程而不是 4 个线程,我无法在测试启动后更改它。

如何从我的测试代码中调整线程数?

0 投票
1 回答
1083 浏览

python - 如何修改 pytest 参数?

我发现为此我可以使用 PyTest 函数 pytest_load_initial_conftests()

https://docs.pytest.org/en/latest/example/simple.html#dynamically-adding-command-line-options

但我无法正确实现这个例子(见链接)。

pytest_load_initial_conftests()甚至没有启动(通过调试查看)。测试运行正常,没有任何参数(一个线程),但我期望“-n”参数。

我安装了 pytest 和 xdist。项目中只有两个文件。没有pytest.ini。

我究竟做错了什么?请帮助运行它。

conftest.py

test_t1.py

0 投票
1 回答
414 浏览

python - 如果安装了 pytest-xdist,如何通过 pytest -nauto 启用并行性?

要启用并行测试,必须安装pytest-xdist并使用 pass-nauto选项pytest以使用所有可用的 CPU。我想-nauto默认启用,但仍然是pytest-xdist可选的。所以这行不通:

如果已安装,有没有办法默认启用 pytest 并行pytest-xdist性?(如果需要,也应该可以再次禁用它pytest -n0。)

我想必须写某种conftest.py钩子?可以检测已安装的插件,但pytest_configure在加载插件后运行,这可能为时已晚。此外,我不确定此时如何添加选项(或如何配置直接操作 xdist)。

0 投票
0 回答
802 浏览

python-3.x - 为什么在使用 pytest-xdist 时 pytest_sessionstart 钩子会运行多次?

我试图使用 pytest-xdist 在我的硒网格中并行运行 pytests。在使用 pytest-xdist 之前,我在所有测试甚至开始使用 pytest_sessionstart 钩子之前执行了一次设置。它工作得很好。这将是第一个运行的东西,并且在它完成之前不会开始任何测试。一旦我尝试使用 pytest-xdist,所有会话范围的钩子(如 pytest_sessionstart 和 pytest_sessionfinish)都会被执行多次。我不理解或做错了什么?

0 投票
2 回答
514 浏览

python - 没有输出,即使使用 `py.test -s`

我想与Hunterpy.test结合使用:

不幸的是, Hunter 的输出(跟踪)不可见。

版本:

在更简单(更小)的 virtualenv 中它可以工作(相同的 pytest 版本,但没有插件)。

可能是什么原因?

如何调试这个?

0 投票
1 回答
195 浏览

python - Pytest-xdist 适用于 pip 但不适用于 pipenv。没有加载/计划测试

Pytest当我通过 pip 和 pipenv 安装它时工作。但是,当使用pytest-xdist带有命令的插件时,例如pytest -n 4,这仅适用于pip而不是pipenv。没有计划或加载任何测试。

这是我当前的 pipfile:

0 投票
0 回答
106 浏览

python - 未指定目录时,patch 不适用于 pytest

我对 pytest 和模拟补丁有一个奇怪的问题。
我的 django 应用程序在收到请求时调用货币兑换的 API。
我想在测试时修补它们,但它不起作用。

下面的命令成功。它不会向真实的交换服务器发送任何请求。

但是,下面的命令失败了,因为它将请求发送到真正的 Exchange API 服务器。好像打补丁没用。

项目结构如下所示。

test_views.py

是什么导致了上述差异?
以及如何在这两种情况下使补丁正常工作?

提前致谢。