如何运行一次设置(夹具)然后并行测试

Sub*_*tri 6 python pytest pytest-parallel pytest-xdist

我使用 pytest-xdist 并行运行测试,但我的套件设置非常庞大且笨重,我希望避免在每个测试执行中运行多次。
当我使用 pytest-xdist 并行运行所有测试时,我遇到了这样的问题:我的套件设置(固定装置)在每次测试执行之前运行,这增加了所有测试用例的执行时间。
有什么方法可以避免在 pytest 并行执行中每次测试执行之前执行固定装置吗?

jol*_*ver 2

如果您不使用 pytest-xdist,则通常可以为您的装置指定会话范围。当您使用 pytest-xdist 时,具有会话范围的装置将无法按预期工作,因为测试是在单独的进程中执行的。

这是 pytest-xdist 的已知限制:https://pytest-xdist.readthedocs.io/en/stable/how-to.html#making-session-scoped-fixtures-execute-only-once

例如,如果您可以将数据存储在文件中,则文档中有建议的解决方法。如果这是您需要首先运行的进程,那么恐怕您可能必须将其移到测试之外。

他们的 GitHub 存储库上有关于此问题的未决问题,例如:https: //github.com/pytest-dev/pytest-xdist/issues/271