1

我正在使用 python + pytest + xdist + selenium 网格构建一个测试框架。该框架需要与预先存在的自定义日志系统对话。作为此日志记录过程的一部分,我需要提交 API 调用:设置每个新的测试运行,在这些测试运行中设置测试用例,并将字符串和屏幕截图记录到这些测试用例。

第一步是设置一个新的测试运行,其 API 调用返回(除其他外)一个测试运行 ID。我需要保留此 ID 以供所有测试用例阅读。我想把它放在某个全局变量中,但是用 xdist 运行我的测试会导致框架失去对值的跟踪。

我试过了:

  • 使用“全局”类;它在使用 xdist 时忘记了值。
  • 在我的 conftest.py 文件中保存一个全局变量;同样的问题,使用 xdist 时值会被丢弃。到处导入我的 conftest 似乎也是错误的。
  • 在 conftest 中放置一个“全局”类;一样。

此时,我正在考虑将其写入临时文件,但这似乎很原始,而且我认为我忽略了一个更好的解决方案。跨多个 xdist 线程存储和访问全局数据的最正确、pytest 风格的方法是什么?

4

2 回答 2

0

可能值得研究Proboscis,因为它允许特定的测试依赖项并且可能是一个可能的解决方案。

于 2018-05-03T14:53:58.877 回答
0

你可以试试 config.cache 例如 -

request.config.cache.set('run_id', run_id)

参考文件

于 2020-07-09T10:28:41.337 回答