问题标签 [pytest-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 不尊重 settings.DATABASES (或者我做错了什么)
我正在尝试使用 pytest-xdist 来运行并行测试。它有效,我看到性能有所提高。
为了进一步改进,我想通过使用 django_db_modify_db_settings_xdist_suffix 为其提供多个数据库
我在我的 conftest.py 中覆盖了这些函数。
由于我有四个工人,我手动创建了四个数据库。然后我使用 conftest 修改 settings.DATABASES 以针对 DBNAME_ 测试 DBNAME
我验证了我的 settings.DATABASES 已经改变并且是正确的。
但是查询仍然会转到旧的 db DBNAME(它不再在我的 settings.DATABASES 中)
可能出了什么问题?
我需要做任何其他改变吗?或者更改 conftest.py 夹具就足够了?
提前感谢您的任何帮助或指导。
编辑:我的 conftest:py 有很多东西。在 django_db_modify_db_settings_xdist_suffix 结束时,如果我记录 settings.DATABASES 它会显示正确和预期的信息。但是查询仍然会转到不同的数据库。conftest.py 在两次运行中都相同(pytest -n4 或 pytest)。由于它依赖于 xdist_suffix 它只修改“-n 4”运行中的 settings.DATABASE 值。我认为在这里很重要的两个相关功能:
和
pytest - 如何修复“pytest:错误:无法识别的参数:-n”
嗨,我正在尝试在 azure 管道上并行运行我的测试(pytest-xdist)。到目前为止,测试运行得非常好。突然,pytest 抛出一个奇怪的错误,说“无法识别的参数”。
文件名:integration_test.py 使用的命令:pytest -n 5 --tb=short integration_test.py -v -s --> 并行运行 5 个测试 测试总数:57 个版本:pytest==6.2.5 pytest- xdist==2.3.0 甚至尝试使用这两个模块的最新版本。
错误:错误:用法:pytest [options] [file_or_dir] [file_or_dir] [...] pytest:错误:无法识别的参数:-n integration_test.py
我该如何克服这个错误?
python - 在 pytest 多处理中写入同一文件
有一个 pytest 测试套件,可以通过pytest-xdist
. 其中一些测试写入同一个文件,这在多处理时可能会出现问题。
我认为这样做可以解决问题,但没有成功:
在util.py
:
并在test_something.py
:
有时测试会挂起,或者有时会出现 WRITE/READ 问题。
我是否将其放置LOCK
在不正确的位置?有没有办法在所有测试中传递一个全局对象?还是我想错了?
python - --cache-clear 用于 pytest xdist
目标:我需要在测试收集之前在 pytest 缓存中设置一些随机值。
问题:如果我使用带有选项 master 的 pytest-xdist 并行运行测试,--cache-clear
并且每个工作人员都会清除缓存,所以我需要确保所有工作人员在设置值之前都准备好。
可能的解决方案:
它工作正常。我有 10 秒的睡眠时间,似乎足以启动所有工作人员(节点)。所有工作人员都已启动,所有工作人员都清除缓存。第一个将值设置为缓存,其他人获取它。但我不喜欢这种方法,因为不能保证所有的工人都启动+额外的等待时间。
我考虑其他方法:
- 禁用清除工作人员的缓存
- 检查所有工作人员是否已启动
但我不知道该怎么做。有任何想法吗?
UPD #1。最小的可重现示例
要求:
代码:
conftest.py
test_clear_cache.py
输出:
注意:如果您在conftest.py
测试中取消注释代码将打印相同的名称。
python - pytest-xdist 因 pytest-cov 错误而崩溃
我试图通过我的主节点的 ssh 在远程机器上对我的包执行测试。两个节点都安装了相同版本的软件包。
我正在运行这样的测试,
在运行此程序时,我收到以下错误,
我已确保在工作节点中安装了覆盖范围。
我不知道为什么它仍然失败。
我还注意到代码文件由于某种原因没有在工作机器中同步。
我试图了解这里出了什么问题以及如何解决这个问题。
python - pytest_configuration 在使用 pytest-xdist 时运行多次
在我的 conftest.py 中,我有 pytest_configuration 钩子,它在执行测试以配置东西之前运行一些 API。在我使用 pytest-xdist 并行运行测试之前,一切都按预期工作。在这种情况下,我的钩子会根据我选择的节点数执行 n+1 次。
有解决问题的方法吗?我只需要配置执行一次。