我正在使用 python + pytest + xdist + selenium 网格构建一个测试框架。该框架需要与预先存在的自定义日志系统对话。作为此日志记录过程的一部分,我需要提交 API 调用:设置每个新的测试运行,在这些测试运行中设置测试用例,并将字符串和屏幕截图记录到这些测试用例。
第一步是设置一个新的测试运行,其 API 调用返回(除其他外)一个测试运行 ID。我需要保留此 ID 以供所有测试用例阅读。我想把它放在某个全局变量中,但是用 xdist 运行我的测试会导致框架失去对值的跟踪。
我试过了:
- 使用“全局”类;它在使用 xdist 时忘记了值。
- 在我的 conftest.py 文件中保存一个全局变量;同样的问题,使用 xdist 时值会被丢弃。到处导入我的 conftest 似乎也是错误的。
- 在 conftest 中放置一个“全局”类;一样。
此时,我正在考虑将其写入临时文件,但这似乎很原始,而且我认为我忽略了一个更好的解决方案。跨多个 xdist 线程存储和访问全局数据的最正确、pytest 风格的方法是什么?