如何快速安装Calabash-Android:从环境准备到零踩坑的完整教程
移动开发开发工具【免费下载链接】calabash-androidAutomated Functional testing for Android using cucumber项目地址https://gitcode.com/gh_mirrors/ca/calabash-android点击查看免费下载Calabash-Android是一款用于 Android 原生与混合应用的免费开源自动化功能测试框架它基于 Cucumber让你用自然语言编写可执行的测试脚本.feature文件。本文是一份完整的Calabash-Android 安装教程从 Ruby、JDK、Android SDK 三大环境准备到生成测试骨架、首次运行 APK 测试带你一步步搭建 Android 自动化测试环境并提前避开新手最常见的坑。一、安装前准备先检查这 4 个依赖Calabash-Android 本质是一个 Ruby 工具链官方安装文档明确要求以下 4 项环境建议安装前逐条核对可参考 documentation/installation.md。依赖版本/要求验证方式Ruby2.0 及以上推荐最新稳定版ruby -vJDK任意可用版本设置JAVA_HOME环境变量Android SDK官方最新版设置ANDROID_HOME环境变量Ant仅从源码编译时需要ant -version1. 安装 Ruby最关键的一步在终端执行ruby -v输出ruby 2.x即可。官方强烈建议使用rbenv 或 rvm管理 Ruby 版本避免与系统 Ruby 冲突Windows 用户可从 RubyInstaller 官网获取安装包⚠️永远不要用sudo安装 gem这是新手环境被搞坏的第一大元凶。2. 配置 JDKCalabash 会自动从注册表Windows或 monodroid 配置中查找 JDK但最稳妥的做法是显式设置将JAVA_HOME指向 JDK 安装目录如C:\Program Files\Java\jdk1.8.0_20或把 JDK 的bin目录加入PATH。3. 配置 Android SDK下载并解压 Android SDK 后创建环境变量ANDROID_HOME指向 SDK 所在目录。这是 Calabash 调用 ADB 命令装包、启动 App、截图的基础。4. Ant可选只有当你想从源码编译Calabash 时才需要安装 Ant 并加入PATH普通使用可以跳过。若需克隆源码研究仓库地址为git clone https://gitcode.com/gh_mirrors/ca/calabash-android二、最快安装方法用 Bundler 一键装好官方推荐始终使用 Bundler管理 Calabash 版本避免全局 gem 污染。只需 3 步安装 Bundlergem install bundler在工作目录创建Gemfile写入核心依赖source https://rubygems.org gem calabash-android gem cucumber执行安装之后所有命令都用bundle exec前缀bundle install bundle exec calabash-android run your_app.apk 小建议定期执行bundle update更新 Calabash/Cucumber 依赖如果 Bundler 装不上优先换用 rbenv/rvm 管理 Ruby而不是硬装。三、30 秒生成测试工程calabash-android gen装好之后最推荐的第一步是生成 Cucumber 骨架calabash-android gen它会在当前目录生成如下标准结构模板见 ruby-gem/features-skeleton/features ├── support │ ├── app_installation_hooks.rb # 自动安装被测 App │ ├── app_life_cycle_hooks.rb # 场景前后生命周期 │ ├── env.rb # 环境入口 │ └── hooks.rb ├── step_definitions │ └── calabash_steps.rb # 引入全部预定义步骤 └── my_first.feature # 第一个测试用例其中 ruby-gem/features-skeleton/my_first.feature 给了一个点击登录 → 看到欢迎语的示例场景改成你自己的 App 文案就能跑。所有开箱即用的自然语言步骤汇总在 ruby-gem/lib/calabash-android/canned_steps.md。四、首次运行测试一条命令启动bundle exec calabash-android run 你的apk运行时有两个机制值得理解Test Server测试服务器执行测试时Calabash 会把一个特殊的 instrumentation 随你的 App 一起装到设备/模拟器上它拥有特权来与 App 深度交互。每当你更换 App 二进制或升级 Calabash 版本都会重新构建 test serverUIAutomator2 能力如需操作其他应用或系统级元素可用start_test_server_in_background(with_uiautomator: true)启动测试服务器。截图输出位置截图默认保存在当前工作目录可通过环境变量重定向例如SCREENSHOT_PATH/tmp/foo/后第一张截图会生成/tmp/foo/screenshot_0.png。五、环境变量速查表提前避开 90% 的配置坑Calabash-Android 通过 Unix 环境变量控制运行行为完整说明见 ruby-gem/ENVIRONMENT_VARIABLES.md最常用的 6 个如下变量作用APP_PATH指定 APK 路径APK 不在默认位置、CI 环境时必用MAIN_ACTIVITY覆盖自动检测的主 ActivityADB_DEVICE_ARG多设备时指定目标设备 IDRESET_BETWEEN_SCENARIOS设为1后每个 Scenario 前清空 App 数据SCREENSHOT_PATH自定义截图目录/前缀TEST_APP_PATH自定义 test server 路径CI 环境用⚠️ 注意路径含空格时必须加引号如APP_PATH~/path with spaces/app.apk。六、新手踩坑清单测试跑不起来先查这 3 处坑 1App 启动后立即崩溃被测 App 必须声明android.permission.INTERNET权限否则 test server 无法通信需在AndroidManifest.xml中补充uses-permission android:nameandroid.permission.INTERNET /坑 2按钮/文字点不中在AndroidManifest.xml中显式声明targetSdkVersion例如uses-sdk android:targetSdkVersion16 /坑 3从旧版本升级后步骤失效Calabash 0.5 起移除了大量旧 action需改用 Ruby wrappers、queries 和 gestures 重新实现迁移清单见 migrating_to_calabash_0.5.md历史版本变化可查 CHANGELOG.md。七、验证环境是否装对跑一遍官方集成测试仓库自带一个完整的被测示例工程NativeTestApp和对应的集成测试位于 ruby-gem/integration-tests/是验证环境是否装对的最好方式cd ruby-gem/integration-tests/NativeTestApp ./gradlew clean assemble cd ../.. bundle exec calabash-android run NativeTestApp/app/build/outputs/apk/debug/NativeTestApp.apk构建与运行说明详见 ruby-gem/integration-tests/README.md。当第一个绿色通过的 Scenario 出现在终端时你的 Calabash-Android 环境就搭建完成了 。八、延伸阅读入门总览与命令速查README.md官方安装文档documentation/installation.mdRuby API 参考documentation/ruby_api.md预定义步骤大全ruby-gem/lib/calabash-android/canned_steps.md当前版本信息ruby-gem/lib/calabash-android/version.rb按以上顺序完成环境准备、Bundler 安装、骨架生成与首次运行整个过程通常在半小时内。遇到报错时先对照第五节的环境变量与第六节的踩坑清单自查基本可以解决绝大多数安装问题。赞分享移动开发开发工具【免费下载链接】calabash-androidAutomated Functional testing for Android using cucumber项目地址https://gitcode.com/gh_mirrors/ca/calabash-android点击查看免费下载相关推荐如何冻结TRX并为超级代表投票TRON投票机制简单指南如何冻结TRX并为超级代表投票TRON投票机制简单指南 在波场TRON网络中每个持有TRX的账户都拥有选举权。本文带你快速搞懂TRON投票机制如何冻结TR如何快速安装GLPI从零开始的完整教程如何快速安装GLPI从零开始的完整教程 GLPIGestionnaire Libre de Parc Informatique是一款强大的开源IT资产管理后端企业应用ITSMVoxelMorph-PyTorch 图像配准完全指南VoxelMorph PyTorch 图像配准完全指南 VoxelMorph PyTorch 是一个基于深度学习的无监督 3D 可变形图像配准方法的非官方 Py网络安全移动开发应用安全创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

南航编译原理课程设计:Java手写词法与语法分析器实战指南

南航编译原理课程设计:Java手写词法与语法分析器实战指南

简介:本资源是南京航空航天大学《编译原理》课程设计的完整实现包,面向计算机专业本科生及编译技术初学者,聚焦词法分析与语法分析核心环节,提供可直接运行、经验证无BUG的工程级实践方案。压缩包共32个文件,涵盖8个关…

2026/10/10 16:08:04 阅读更多 →
用Python实现本地模拟横向联邦学习:从FedAvg到单机可复现实验

用Python实现本地模拟横向联邦学习:从FedAvg到单机可复现实验

简介:面向机器学习初学者与联邦学习研究者的横向联邦学习本地模拟资源,使用Python构建,以公开数据集搭建可复现的单机模拟环境,让没有分布式集群的读者也能体验多客户端协作建模的完整过程。资源从数据加载、模型定义、客户端本地…

2026/10/10 16:08:04 阅读更多 →
Java+SSM+Django仓库管理系统:从业务建模到并发控制实践

Java+SSM+Django仓库管理系统:从业务建模到并发控制实践

基于JavaSSMDjango的仓库管理系统,放在毕业设计和公司信息化项目里都是老牌选题了。但网上能找到的同类源码,大多数只是把增删改查套上一个库存表的壳子,真正能对接“明嘉新材料公司”这类生产制造场景的并不多。这篇内容不是列功能清单&…

2026/10/10 16:08:04 阅读更多 →

最新新闻

HyperQwen int8 张量核实战:修复 Marlin W4A8 负缩放 bug 并逐层选择激活量化

HyperQwen int8 张量核实战:修复 Marlin W4A8 负缩放 bug 并逐层选择激活量化

HyperQwen int8 张量核实战:修复 Marlin W4A8 负缩放 bug 并逐层选择激活量化 【免费下载链接】HyperQwen Serve large Qwen models fast on the GPUs you actually own. Qwen3.8-27B on a single 24 GB card with vLLM: 127 tok/s single-user (381 when the answe…

2026/10/11 20:55:42 阅读更多 →
VC++双人对决围棋程序:规则与界面实现全解析

VC++双人对决围棋程序:规则与界面实现全解析

简介:一份可以直接编译运行的VC双人围棋对弈程序源码,基于MFC设计,面向刚开始学习VC或对游戏编程感兴趣的开发者。程序支持双人在同一台电脑上轮流落子,自动完成棋盘绘制与胜负判断,并针对15/17寸液晶屏幕提供了窗口尺…

2026/10/11 20:55:42 阅读更多 →
HaleHound-CYD首次启动指南:触屏校准、屏幕旋转与5个常见故障快速排查

HaleHound-CYD首次启动指南:触屏校准、屏幕旋转与5个常见故障快速排查

【免费下载链接】HaleHound-CYD ESP32-DIV HaleHound Edition for Cheap Yellow Display - Multi-protocol offensive security toolkit 项目地址: https://gitcode.com/gh_mirrors/ha/HaleHound-CYD 点击查看 免费下载 HaleHound-CYD 是运行在 ESP32 Cheap Yellow…

2026/10/11 20:55:42 阅读更多 →
五台山景点购票系统:分时预约与防超卖技术方案

五台山景点购票系统:分时预约与防超卖技术方案

简介:这份PPT资源面向计算机专业学生与Java Web开发者,围绕五台山景点购票系统的设计与实现展开,可作为毕业设计、课程设计或SSM框架学习项目的参考方案。内容涵盖系统背景、需求分析、SSM框架选型、管理员与用户功能模块划分、系统测试及结论…

2026/10/11 20:55:42 阅读更多 →
基于模拟退火的VRPSPD求解及Matlab实现——同时取送货车辆路径问题

基于模拟退火的VRPSPD求解及Matlab实现——同时取送货车辆路径问题

1. 项目概述:这是一个什么问题先聊一个做配送调度的朋友几乎都遇到过的情况:快递员早上出门装满一车货,沿途把包裹送出去,同时还要把用户退的旧件、要寄出的箱子一件件收回来。车上的货物量不是在消耗,而是在动态变化—…

2026/10/11 20:55:42 阅读更多 →
google/ax 点名依赖之后:agent 基建下半场,沙箱层开始卷了

google/ax 点名依赖之后:agent 基建下半场,沙箱层开始卷了

google/ax 点名依赖之后:agent 基建下半场,沙箱层开始卷了 【免费下载链接】substrate Agent Substrate: the core system 项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrate agent 生态的竞争重心正在肉眼可见地下移&#xf…

2026/10/11 20:54:41 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →