问题标签 [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 夹具和线程同步
我正在尝试使用 pytest-xdist 以使我的测试并行运行,问题是每个线程都将转到与所有测试共享的夹具并根据线程数执行它。
它给我带来了一个问题,因为该夹具角色是为我的测试创建数据,一旦它已经创建,我就会得到错误,因为它已经创建(通过 REST)。
conftest.py:
测试类.py:
我正在使用命令:pytest -v -n2
假设第一个线程应该运行 first_test() 并且第二个线程应该运行 second_test() 其中一个总是会失败,因为第一个线程已经在夹具部分创建了数据,另一个线程将出现异常并且他应该运行的所有测试都将失败。
如您所见,我尝试使用 lock 来同步线程,但它也不起作用。
知道如何克服这个问题吗?
谢谢。
python-3.x - 如何在 Docker 容器内并行运行 Pytest 中的测试?
我在 Docker 容器内并行运行 GUI 测试时遇到了问题。我用了一堆:Selenium webdriver + Pytest + Xdist + Chrome。
我使用以下命令来运行测试:
但是所有的测试都失败了。如果我在 docker 容器外做同样的事情或使用 1 个线程 - 它工作正常。
那么,我该如何解决这个问题并在 docker 容器内并行执行测试呢?非常感谢)
我在日志中有这个:
python - pytest-xdist 线程对单例是否安全
我正在使用 Python 引导一个新的 Selenium 项目。来自 Java 世界,我曾经将 Webdriver 实例包装在 ThreadLocal 中。这样,我可以确定当我的测试与 TestNG 并行运行时,我的 Webdriver 会话将被隔离并且不会在线程之间共享。
我想在 Python 中实现相同的行为。对于单例,我可以使用MetaClass。要并行运行测试,我可以使用 pytest-xdist。但是你能告诉我两者是否兼容,这意味着我的会话不会混合吗?
python - 如何通过xdist插件并行执行pytest?
如何在多个自定义环境中并行运行我的 pytest?我也有 pytest-xdist。不确定这个插件是否有帮助
test_test.py
当我运行命令时:
这是我的输出...
同样,当我运行命令时:
这是我的输出...
我这里有两个要求,
- 我想同时运行多个环境
- 它需要并行运行
所以我选择了 xdist 插件;但我不确定我是否可以使用我的示例运行。对于我的示例,是否可以使用 xdist 运行?
我需要这样的东西...
并行运行 env1、env2
python - 使用 pytest-xdist 会导致 AttributeError: module '__main__' has no attribute '__file__'
我正在尝试使用 pytest-xdist 通过在多个 CPU 上运行来更快地运行我的测试。但是,当我切换到使用多个 CPU 时,测试不会运行,因为收集测试时出现错误。
更具体地说,错误是
这是因为正在测试的脚本导入了我编写的日志记录模块。日志记录模块使用
确定主应用程序的名称,以便将其添加到日志输出文件名中。
我似乎无法弄清楚 pytest 在多 CPU 模式下的作用与在单 CPU 模式下的不同。
所以当我执行我的测试时
一切运行良好,但一旦我切换到
我收到这些错误:
当我尝试使用 Python subprocess 方法执行时,也会出现同样的问题:
编辑: 我现在在我的日志模块中使用以下代码解决这个问题:
现在具有多个 CPU 的 pytest 对我来说可以正常工作。
pytest - 使用 xdist 执行 pytest 测试后,如何汇总测试结果以发布到 testrail?
我遇到了这样的问题。我目前正在使用 pytest 运行测试用例,并使用 xdist 并行运行测试并将测试结果发布到 TestRail 来减少执行时间。问题是在使用 xdist 时,pytest-testrail 插件会为每个 xdist 工作人员创建 Test-Run,然后发布测试用例,例如 Untested。
我尝试了这个钩子 pytest_terminal_summary 来防止 pytest_sessionfinish 插件钩子被多次调用。
我希望只创建一个测试运行,但仍然创建多个测试运行。
selenium - 使用 Pytest 并行运行测试时如何使工作魅力?
问题是我正在使用 Pytest+Selenium+Allure+Selenoid+Testrail。当测试在 1 个线程中运行时,一切正常。
但是当我尝试运行并行测试执行时:
- pytest-xdist:Allure 创建一个空报告
- pytest-parallel:不在 alluredir 中创建任何报告
问题:有什么方法可以让 Allure 使用 Pytest 进行并行测试执行?
python - 使用 pytest-xdist 跨主节点和工作节点访问共享资源
我正在尝试在主节点和工作节点之间共享数据库中的随机条目列表(我对共享资源的定义),并使用 pytest-xdist 并行化测试。我的代码遵循以下结构:
我修改了https://hackebrot.github.io/pytest-tricks/shared_directory_xdist/提供的建议,以便在主节点和工作节点之间共享数据库条目:
我可以使用上述方法在主服务器和工作人员之间共享这些数据库条目,如下所示:
到目前为止,还没有测试用例的并行化。我只是在主节点和工作节点之间共享相同的数据库条目。
我的问题:如何参数化共享资源状态(数据库条目),以便我可以用来pytest-xdist
并行执行这些测试?
我想做一些类似的事情:
python - AttributeError:“配置”对象没有属性“测试系统”
在不使用“-n”选项的情况下,所有测试都运行良好。我打印了 config 的属性,它确实有 test_system ,我不知道它为什么会失败。
pytest - 有没有办法通过文件使用 xdist 运行 pytests?
我正在尝试使用带有 2 个网关的 xdist 运行 2 个测试文件(-n=2)
。每个测试文件都包含特定于用户权限的测试。在使用 pytest 和 pytest-xdist 运行测试时,我注意到一些测试随机失败。发生这种情况是因为某些测试file1
由不同的gw
. 因此,如果[gw0]
从 运行大多数测试file0
,有时[gw0]
也会执行一些file1
导致失败的测试。
我试图找出是否有办法强制/要求xdist
执行特定文件,或者是否有办法将文件分配给gw
?
pytest test_*.py -n=2 -s -v
也试过:
pytest test_*.py -n=2 -s -v --dist=loadfile