You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Codeception版本高于~2时安装Appium驱动遇依赖冲突求解决

解决Codeception 4.x安装Appium驱动的版本冲突问题

我之前在Codeception 4.x项目里也碰到过类似的版本兼容坑,给你几个实用的解决方向:

优先使用Codeception官方WebDriver模块对接Appium

其实Codeception的官方WebDriver模块本身就支持Appium(因为Appium遵循WebDriver协议),完全不需要依赖那个停止维护的第三方me-io/appium-driver-codeception包。

步骤很简单:

  1. 安装官方WebDriver模块:
composer require codeception/webdriver --with-all-dependencies
  1. 在你的测试套件配置(比如acceptance.suite.yml或者专门的mobile.suite.yml)里配置Appium参数:
modules:
    enabled:
        - WebDriver:
            url: 'http://localhost:4723/wd/hub' # Appium服务默认地址
            browser: 'chrome' # 根据测试场景调整,也可留空,用desiredCapabilities指定
            desiredCapabilities:
                platformName: 'Android' # 或iOS
                deviceName: '你的设备/模拟器名称'
                app: '/绝对路径/到你的测试APP.apk' # 安装包测试需指定,浏览器测试可省略
                # 按需添加其他Appium配置,比如automationName、appPackage等

配置完成后,就能直接用Codeception的WebDriver语法编写Appium测试,完美适配Codeception 4.x版本。

关于me-io/appium-driver-codeception的问题

你遇到的错误本质是版本依赖冲突:这个第三方包的1.0.x版本仅支持Codeception 2.x,而你的项目使用的是4.1版本,Composer无法同时满足这两个互斥的版本要求。而且这个包已经很久没有更新,大概率已停止维护,不建议再花费时间在它上面。

备选方案(不推荐)

如果实在要坚持使用这个第三方驱动,只能自行fork它的仓库,修改composer.json里的依赖声明,将codeception/codeception ~2改为~4.1,然后用Composer引用你fork后的仓库地址:

composer require your-github-username/appium-driver-codeception:dev-main --with-all-dependencies

但这种方法需要你自行维护后续的兼容性,风险较高,除非这个包有你特别依赖的功能,否则不建议采用。

内容的提问来源于stack exchange,提问作者Kaloyan Dzhongov

火山引擎 最新活动