写个单例
你的线程是怎么设计的?
pytest 中,进行多进程跑时,我想定义在 conftest 文件中的 fixture 夹具只在一个线程中跑一次即可,而不想多次进行跑
具体确定想怎样呢?
正好前段时间用 pickle 和 FileLock 做了这个改造,步骤大概如下(代码暂时没办法贴上来):
官方是有例程的,根据业务改造一下就可以用了
我也是基于这个官方教程去改造的,把保存的文件从 JSON 改成 pickle 就可以了
多进程最好还是别用 fixture 了,挺坑的,即使用文件锁解决了 fixture 重复调用的问题,那也可能出现进程 A 还在执行 fixture,进程 B 已经开始执行 case 了,但这个 case 又需要 fixture 的结果的情况,很麻烦。 我的处理方式是,将 fixture 的一些前置操作置于主进程,子进程只负责执行 case。