将全局配置数据存储在pytest / xdist框架中

时间:2018-04-23 21:26:35

标签: python pytest xdist pytest-selenium

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

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

我试过了:

  • 使用“全局”类;它在使用xdist时忘记了它的价值。
  • 在conftest.py文件中保存全局变量;同样的问题,使用xdist时值会被删除。在任何地方导入我的conftest似乎都是错误的。
  • 在conftest中加入“全局”类;同样的事情。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以尝试config.cache吗? -

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

refer documention