有一个 pytest 测试套件,可以通过pytest-xdist
. 其中一些测试写入同一个文件,这在多处理时可能会出现问题。
我认为这样做可以解决问题,但没有成功:
在util.py
:
import multiprocessing
LOCK = multiprocessing.Lock()
并在test_something.py
:
from util import LOCK
...
def test_something():
...
LOCK.acquire()
write_to_file()
LOCK.release()
...
有时测试会挂起,或者有时会出现 WRITE/READ 问题。
我是否将其放置LOCK
在不正确的位置?有没有办法在所有测试中传递一个全局对象?还是我想错了?