3

第一次在这里发帖,过去两天我试图搜索解决我的 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
4

2 回答 2

3

如果使用最近发布的 pytest 3.2 不能解决您的错误,请尝试使用固定数字播种 python 解释器的哈希,以获得依赖于哈希的结构的稳定排序: PYTHONHASHSEED=0 pytest -n 2

于 2017-08-03T12:51:00.963 回答
1

了解 pytest-xdist 工作原理的一点背景知识

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

要克服这个问题,请确保测试用例参数不依赖于过程并且按排序顺序排列。

于 2020-04-21T09:16:29.723 回答