を介してマルチプロセス/パラレルで実行される 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
を間違った場所に配置していませんか? すべてのテストでグローバル オブジェクトを渡す方法はありますか? それとも、私はそれについて間違った方法で考えていますか?