Pytest Xdist 不同的测试被收集错误



>第一次在这里发帖,在过去的两天里,我试图搜索解决我的xdist问题的方法。当我尝试以 n=2 或更高的速度运行时,我有时会(我说有时是因为它随机工作(出现如下错误:

Different tests were collected between gw1 and gw0. The difference is:
--- gw1
+++ gw0
@@ -1,2 +1,2 @@
+test_Sign_Up.py::test_sign_up[chrome]  test_Sign_Up.py::test_sign_up[firefox]
-test_Sign_Up.py::test_sign_up[chrome]

抱歉,如果这是很容易解决的问题,但是在查看了许多其他帖子之后,我个人觉得我没有找到答案。如果需要更多信息,请告诉我,我会尽快回复!谢谢!

编辑:设置

Python 3.5.3
Pytest 3.1.2
Xdist 1.17.1

如果使用最近发布的 pytest 3.2 不能修复您的错误,请尝试使用 python 解释器的哈希值使用固定数字,以便对依赖哈希的结构进行稳定的排序: PYTHONHASHSEED=0 pytest -n 2

了解pytest-xdist如何工作的一些背景知识

每个工作线程执行标准收集,并将收集的测试 ID(按顺序(发送回主节点。主节点确保每个工作线程以相同的顺序收集相同数量的测试,因为调度程序从那时起将只向每个工作线程发送测试索引(而不是整个节点 ID(,以告诉他们要执行哪个测试。这就是为什么所有工作人员的集合必须相同。

若要解决此问题,请确保测试用例参数不依赖于进程,并且按排序顺序排列。

最新更新