Airtest airtest+ios ui 自动化,批量跑 case,报错 call depth exceed 4

· 2021年08月13日 · 最后由 213 回复于 2023年08月16日 · 2881 次阅读

求助
本人批量跑 ios ui 自动化的 case,架构为 po+airtest+tidevice+ios
case 有 20 多个,跑完第四个 case 跑第五个 case 的时候,报错 “call depth exceed 4”,请问有没有遇过该问题的朋友提供下解决方案

conftest.py 里初始化的代码如下:

# ios 设备处理
@pytest.fixture(scope="function", autouse=False)
def ios():
    logger.info("客户端初始化操作-----------")
    # if not cli_setup():
    auto_setup(__file__, logdir=True, devices=["ios:///http+usbmux://d822f7b41aa3e5a177df4c13fee14acfbefd63df", ])
    start_app(xx")
    sleep(8)
    # 杀死App
    yield
    logger.info("关闭app-----------")
    stop_app("xx")

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 6 条回复 时间 点赞

占楼,学习下这边的知识

解决问题可以考虑不要在一个 scope 为 function 的 fixture 里做初始化设备的动作。
调 BUG 得看下具体的测试项目,auto_setup 方法里使用了 “file” 魔法变量,要基于它产生日志文件,有可能是这里导致的问题。

#3 · 2021年08月16日 Author
MarvinWu 回复

已搞定了,他 wda 的源码限制了调用次数

遇到了同样的问题,请问下是怎么解决的?

@ 恺 楼主你怎么解决的哈,本人也遇到了这个问题,批量跑的时候

wda 库的init文件中,将@limit_call_depth(4) 改成 20

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册